[英]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.