0

如何擴展Google Cock Pub/Sub與Google雲端存儲中的對象變更通知相比,使用簽名URL來上傳對象時,Google Club Pub/Sub的可擴展性如何?Google Club Pub/Sub對象變更通知

如何在短時間內處理很多正在上傳的對象方面進行比較?如果很多對象都很快上傳,交付速度會變慢嗎?例如,1000個對象/秒?

如果什麼其他選擇在那裏也不是可擴展的?

爲了我的目的,我需要上傳圖片,然後當通知發送到我的Google App Engine應用程序時,我需要寫入我的數據庫。上傳圖片和通知之間的時間間隔很短(最多2-3秒)是非常重要的。

回答

2

在每秒1000點對象發生變化,要使用雲端發佈/訂閱通知。

兩個對象更改通知和雲端發佈/訂閱通知將在1000 QPS工作得很好。但是,在這些負載的情況下,選擇Cloud Pub/Sub有幾個原因。

首先,雲端發佈/訂閱訂閱支持提取消息。通過一次調用pull(),您可以一次檢索100條或更多條消息,然後通過一次調用acknowledge()來確認它們。對象更改通知通常會爲每封郵件調用一次服務。使用Cloud Pub/Sub可以立即將服務器需要處理的RPC數量減少兩個數量級。

其次,在高QPS時,您將希望開始考慮失敗,超時和重試。由於各種原因,Cloud Pub/Sub也是一個優越的選擇。首先,它支持可配置的確認最後期限,而對象更改通知必須在20秒內處理。另一方面,您可以查詢查看當前積壓的大小,以防萬一您落後。如果您使用推送訂閱,如果您的消息接收器脫機一段時間,Cloud Pub/Sub也會有更加友好的流量增長,所以當您重新聯機時,您不會壓倒自己的服務器。

第三,靈活性。 Cloud Pub/Sub是圍繞這個用例而設計的。接收大量的消息是他們的全部麪包和黃油,並且有許多關注它的功能和庫。但云存儲專注於存儲數據。對象更改通知有效,但永遠不會提供與Cloud Pub/Sub一樣多的通知功能。

+0

太棒了!感謝您的詳細描述。上傳帶有Signed URL的對象時,是否也可以傳遞自定義標頭,然後通過Cloud Pub/Sub將其傳遞到Servlet? – BlueBoy

+0

是的,如果您上傳包含一些自定義對象元數據的對象,那麼當通知到達時,額外的元數據將可用。 –

+0

只好與該另一個問題:http://stackoverflow.com/questions/43360536/how-to-send-custom-data-with-cloud-pub-sub-when-gcs-object-is-uploaded-via- A-SIG – BlueBoy