如何为rabbitmq队列创建独特的消息 - spring-amp

时间:2018-04-18 02:28:19

标签: spring-rabbitmq

我将包含字符串数据的消息放入rabbitmq队列。 消息发布被称为服务的一部分,并且可以使用相同的数据(数据进入队列)多次调用服务,因此很可能在队列中存在重复数据。  我们遇到此问题,因为使用者代码将此数据插入到此数据为主键的表中。将同时从4个不同的节点调用消费者,从而可能发生消费者消费相同数据(来自不同消息)的可能性。

我想知道rabbitMQ发布是否有办法避免重复邮件。

阅读“定义属性”x-unique-message-code“比较它们是一种简单易行的方法”,但不知道该怎么做。

我正在使用spring-amqp

非常感谢任何帮助。

谢谢

1 个答案:

答案 0 :(得分:0)

RabbitMQ有一篇关于可靠性的文章:https://www.rabbitmq.com/reliability.html

有一个注释:

  

如果网络出现故障(或节点崩溃),可能会复制邮件,并且消费者必须准备好处理它们。如果可能,最简单的方法是确保您的消费者以幂等方式处理消息,而不是明确地处理重复数据删除。

为此,可以使用messageId属性提供要生成的消息。