幂等和消息消费失败重试的疑问

来源:8-13 实际开发中的经验小结

慕沐3053333

2021-05-10

幂等和消息消费失败后重新回到队列,这两个目标是不是矛盾?因为消息重新回到队列再次被消费者消费时,消费者怎么知道这条消息是失败重试还是生产者因为网络抖动等问题重复发的消息?

写回答

1回答

LBruce

2021-05-11

不矛盾。消息的幂等性其实就是说同一消息,消费者消费了一次或消费多次,结果是一致的,不会因为消费次数的多少,而产生不同的结果。说白了就是,不管这个消息消费了多少次,所产生的结果就跟这个消息只被消费了1次所产生的结果相同。

0
10
LBruce
如果是因为消费者bug,只要没有及时发现bug,更新消费者代码。重回队列不管多少次,依然都是失败的结果。如果是消费者宕机了,那也没法保证消息重新投递给消费者的时候,服务器已经重新启动了。
2021-05-14
共10条回复

RabbitMQ精讲,提升工程实践能力,培养架构思维

消息驱动架构+订单状态机,二次开发,手写分布式事务框架。

470 学习 · 205 问题

查看课程