0%

如何保证RabbitMQ不被重复消费

如何保证RabbitMQ不被重复消费


什么是重复消费:

​ 消费者在消费消息的时候,消费完毕之后会发送一个确认消息给消息队列,消息队列就会知道该消息被消费了,就会将该消息从消息队列中删除。

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

解决方法:

​ 1、保证消息唯一性

​ 2、保证消息等幂性

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