【发布时间】:2022-01-03 15:32:39
【问题描述】:
我正在使用以下 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..."
]
}
我正在使用邮递员工具调用上述API。但是即使在确认之后,当我下次拉消息时,我也可以看到具有相同messageId和不同ackId的相同消息。是否有任何机制可以排除gcp pull (subscriptions/mysubscription:pull) 中确认的消息
【问题讨论】:
-
在 Google Cloud Pub/sub 中,即使在消息被确认后,也会出现一些重复的消息。您是否看到大量重复项?您可以尝试延长您的 AckDeadline 吗?
-
只有使用下面的api我们可以编辑ackDeadline。但是需要在api请求中提供ackIds。是否可以更改主题中所有消息的ackDeadline。 POST pubsub.googleapis.com/v1{subscription}:modifyAckDeadline { "ackIds": [ string ], "ackDeadlineSeconds": integer }
-
正如document 中提到的, modifyAckDeadline 修改特定消息的确认截止日期。要更改订阅中所有消息的 ackDeadline,您可以从控制台更改“确认截止时间”。
标签: google-cloud-platform google-cloud-pubsub