我有一个RabbitMQ服务器,它有大约100个队列,每个队列有大约100条消息。所有队列都具有相同的交换和单独的路由密钥。 我正在使用Spring的amqp框架与RabbitMQ服务器进行交互。我有多个应用程序使用相同的RabbitMQ服务器(即多个消费者)。
我面临的问题是对于某些特定的消费者而言 收到消息,ack失败,即我可以在某些队列中看到一些未确认的消息。现在,如果我的应用程序偶然收到一个重复的(未经处理的消息,即之前收到过的消息)消息,它会抛出异常,这就是我开始获取那些未经处理的消息。
但是我甚至不确定何时以及为什么我会收到一条未包装的(即重复的)消息,因为我不确定未经处理的消息的优先级。那么,你们可以为以下问题提供解决方案:
即使没有第一个问题的解决方案,1我应该如何配置我的应用程序,以便它永远不会收到未包装(重复)的消息。
从创作的一开始就没有看到这种行为 在应用程序中,它最近以这种方式开始表现。答案 0 :(得分:0)
看看以下内容:
redelivered
,该消息在消息已被其他消费者使用时设置,但由于某种原因返回队列。因此,您只需检查一下,如果已设置,则删除该消息。