我在 Google Pub/Sub 中有一个订阅,其中消息可以被确认 (acked) 或不被确认 (nacked)。为了处理 Pub/Sub 的至少一次传递保证,我使用幂等存储来删除多次传递的消息的重复数据。
目前,我拒绝重复的消息。但是,我很好奇:如果我处理之前正在处理的消息然后成功确认它,那么此确认是否也适用于我之前确认的重复消息?
我没有找到任何相关文档。如果对此行为有任何澄清,我们将不胜感激。
重复的消息应该被ack,而不是nack。无法保证确认消息传递的一个实例将导致“所有”传递的确认,并可能导致消息的持续重新传递。如果您在处理消息时收到重复的消息,最好跟踪发送情况并在处理完成后确认所有消息。