2016-10-25 32 views
0

我正在實施一個使用PubSub主題攝取數據的隊列。 我的計劃是使用推送訂閱在發佈時即時處理數據。我應該創建一次或定期創建Push PubSub訂閱嗎?

當使用Pull Sub時,我看到很多代碼模式試圖在每次運行中重新創建Pull訂閱,以確保我們在下一個拉週期中有一個活動訂閱。

我應該使用推送訂閱執行相同操作嗎?恕我直言,不,但我擔心在某些情況下,推送訂閱不是永恆的,應該在下次發佈消息時進行監控,以保證主動推送訂閱。

什麼是推送訂閱創建的良好設計模式? 我應該使用PubSub管理界面創建一次推送訂閱還是以編程方式創建(或重新創建)?

回答

2

之所以用戶會傾向於重新啓動時的代碼周圍,如果他們的存在還沒有被30天檢測到訂閱垃圾收集的事實可能圍繞(see「這兩個消息的耐用性或持續性,如果用戶不在? 「Google Cloud Pub/Sub FAQ。此外,如果明確刪除了拉取訂閱,則在代碼啓動時重新創建拉取訂單可確保拉取請求不會失敗。對於拉取訂戶,檢測存在的概念相當簡單:檢查對拉的調用。

對於推動用戶,這是一個有點更加曖昧如果一個人刪除預訂,用戶本身就沒有辦法知道它已被刪除;它只會停止接收消息如果你是秒。您不會手動刪除訂閱,並且每30天會發送至少一條消息,您不必擔心在啓動時創建訂閱,並且只需通過發佈/訂閱管理界面即可創建一次訂閱。

如果你想警惕確定,你可以create a policy in Stackdriver來通知你的訂閱沒有任何消息推送給它一段時間(假設你發佈一個相當恆定的流消息)。爲「Metric Absence」添加條件,並選擇「Cloud Pub/Sub Subscription」作爲資源類型,訂閱名稱和「Push Request Count」作爲觸發器度量。