簡體   English   中英

GCP PubSub 理解過濾器

[英]GCP PubSub understanding filters

在我的理解中,PubSub 過濾器應該減少發送到特定訂閱的消息數量。 我們目前觀察到我們沒有預料到的行為。

假設有一個 PubSub 主題“XYZ”和一個帶有過濾器屬性的訂閱“XYZ-Sub”。someHeader =“x”有 2 條消息發布到該主題:

第一個 attributes.someHeader = "a"。 第二個帶有 attributes.someHeader = "x"

我希望唯一的消息 2 將傳遞給訂閱,因為消息 1 與過濾器不匹配。 如果不是這種情況並且兩條消息仍然被傳遞(我們目前觀察到的情況):

  • 當沒有客戶端連接時,GCP 控制台顯示 sub 上未確認的消息數量不斷增加。 在 gcp 控制台中拉取這些消息會刪除它們而不顯示任何收到的消息,這讓我假設在拉取消息時應用了過濾器。
  • 過濾器是在 PubSub 客戶端而不是主題級別上評估的嗎?
  • 在 pub/sub 中使用過濾器有什么意義?
  • 發送不需要的消息(消息的字節數)是否需要收費?

Cloud Pub/Sub 中的過濾僅將與過濾器匹配的消息傳遞給訂閱者。 過濾器應用於 Pub/Sub 服務本身,而不是客戶端。 當訂閱者只想處理消息的一個子集時,它們允許您限制傳遞給訂閱者的消息集。

在您的示例中,只應傳送帶有 attributes.someHeader = "x" 的消息。 但是,請注意,作為文檔,積壓指標可能包含與過濾器不匹配的消息。 此類消息不會傳遞給訂閱者,但可能仍會暫時顯示在積壓指標中。

對於未傳送的消息,您確實需要按 Pub/Sub 消息傳送價格付費。 但是,您無需為它們支付任何網絡費用,也無需為處理您未收到的消息而支付任何計算費用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM