在Google Pub/Sub中确认消息是否会同步确认已拒签的重复消息?
Google Pub/Sub 重复消息确认与拒签的行为澄清
结论明确:对同一条重复消息的确认操作会覆盖此前的拒签操作,该消息的所有实例都会被标记为已确认,不会再被投递
Google Pub/Sub 是通过消息的message ID来识别重复消息的,不管你操作的是这条消息的哪个投递副本,最终的ack/nack指令都是作用于这个message ID对应的核心消息实体上:
- 当你拒签某条重复消息时,Pub/Sub会将该消息重新放回订阅队列等待再次投递;
- 后续如果对这条消息的另一个副本执行确认操作,Pub/Sub会直接标记该
message ID对应的消息为已处理,所有待投递的关联副本都会被移除,不会再推送给订阅者。
额外建议:既然你已经用幂等存储处理了重复逻辑,遇到重复消息时直接确认即可,没必要执行拒签——这样能减少消息回流和不必要的重复投递次数,提升订阅处理效率。
内容的提问来源于stack exchange,提问作者Nikita Alkhovik
相关产品推荐
相关产品推荐

