我是RabbitMQ的菜鸟。我开始使用它,它到目前为止服务于我的目的。在我的设置中应该有大约10个消费者。我想知道如果一条消息杀死了多个消费者/工作者我如何检查并丢弃该消息,因为我肯定不希望我的所有工作者因为损坏的消息而失败。非常感谢任何建议,只是为了更新我正在使用Java
答案 0 :(得分:0)
您需要在代码中进行一定程度的错误处理才能捕获所谓的“毒药”消息 - 导致问题且无法处理的消息。
要正确处理此问题,您需要为队列设置Dead Letter Exchange(“dlx”)。当您的代码识别出错误消息时,此交换将用于捕获有害消息。
在您的错误处理代码中,当您收到有害消息时,您需要reject
该消息。这将告诉RabbitMQ通过dlx重新路由消息。
您的dlx应该具有路由设置,以根据此队列中显示的消息将有害消息发送到可以向您发送警报的队列。