簡體   English   中英

即使在使用 GCP REST API 確認后,消息仍保留在 GCP Pub/Sub 中

[英]Message stays in GCP Pub/Sub even after acknowledge using GCP REST API

我正在使用以下 GCP Pub/Sub REST API 來拉取和確認消息。 對於拉消息:-

POST https://pubsub.googleapis.com/v1/projects/myproject/subscriptions/mysubscription:pull
{
  "returnImmediately": "false",
  "maxMessages": "10"
}

確認消息:-

POST https://pubsub.googleapis.com/v1/projects/myproject/subscriptions/mysubscription:acknowledge
{
  "ackIds": [
    "dQNNHlAbEGEIBERNK0EPKVgUWQYyODM2LwgRHFEZDDsLRk1SK..."
  ]
}

我正在使用 postman 工具來調用上述 API。但是即使在確認之后,當我下次拉消息時,我也可以看到具有相同 messageId 和不同 ackId 的相同消息。是否有任何機制可用於排除已確認消息gcp 拉(訂閱/我的訂閱:拉)

Cloud Pub/Sub 是一種至少一次交付系統,因此預計會出現一些重復。 但是,如果您總是看到重復的消息,則很可能在確認截止日期過去之前您沒有確認消息。 默認的確認截止時間是 10 秒。 如果您在該時間段內沒有調用 ack,則消息將被重新傳遞。 您可以將訂閱的確認截止日期設置為最長 600 秒。

如果您的所有消息預計需要更長的時間來處理,那么最好增加確認截止日期。 如果只有幾條消息會很慢,而大多數消息會被快速處理,那么最好使用modifyAckDeadline 調用來增加每條消息的確認截止日期。

暫無
暫無

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

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