page contents

如何保证RabbitMQ不被重复消费?

轩辕小不懂 发布于 2021-09-01 15:37
阅读 659
收藏 0
分类:中间件
1822
Nen
Nen
- 程序员

正常情况下,消费者在消费消息的时候,消费完毕后,会发送一个确认消息给消息队列,消息队列就知道该消息被消费了,就会将该消息从消息队列中删除;

但是因为网络传输等等故障,确认信息没有传送到消息队列,导致消息队列不知道自己已经消费过该消息了,再次将消息分发给其他的消费者。

解决思路:

保证消息的唯一性,就算是多次传输,不要让消息的多次消费带来影响;保证消息等幂性;

比如:在写入消息队列的数据做唯一标识,消费消息时,根据唯一标识判断是否消费过;

请先 登录 后评论