其他分享
首页 > 其他分享> > RabbitMQ使用过程中遇见的问题

RabbitMQ使用过程中遇见的问题

作者:互联网

怎么保证消息不被重复消费?

  解决思路:保证消息的唯一性

      写入消息队列的数据做唯一标识,

      消费消息时,根据唯一标识判断是否消费过。若第二次消费消息,则直接丢弃。

  

  项目中实现:

    1. 生产者投递消息时每个消息都包含一个全局唯一ID来标识每条消息

    2. 建立一张消息日志表,记录消息的id和执行状态,在消息id上加唯一索引。

    3. 消费的时候,先往消息日志表插入记录,如果插入失败报错duplicate key,那说明消息已经消费过,就不用再消费了,这就保证了幂等性。

    4. 这个方案的关键点在于你要保证消息的id是全局唯一,这就涉及到各种技术方案了,比如snowflake、UUID等。

 

如何保证消息的正确发送rabbitmq

  解决思路:

    发送方确认模式:

      将 信息通道 设置成confirm模式(发送方确认模式),消息包含唯一ID

    接收方确认机制:

 

标签:消费,RabbitMQ,唯一,标识,保证,消息,遇见,过程,id
来源: https://www.cnblogs.com/Life-QX/p/16476713.html