RabbitMQ - 有没有办法回到队列中的旧消息

时间:2014-02-10 13:31:35

标签: queue rabbitmq messaging messagebroker

让我们说我的消费者已经采取行动,并且由于一些奇怪的原因没有很好地处理这个消息。 是否有技术可以再次查看消息? 要求:
1.同一订单 2.继续接收新消息并将它们放在队列的最后?

因此,不要重新加入它们(搞乱顺序),比如将索引移回(就像在kafka中一样)? 感谢。

1 个答案:

答案 0 :(得分:0)

1 - 相同的订单与异步AMQP模型不兼容。

一般情况下,RabbitMQ会在添加消息时添加消息,但如果重新发生,则消息将尽快发送。此外,如果一条消息没有被激活,它也将被安排到客户端。

2 - Dead lettering可能对您有帮助。

当然,您可以手动将消息添加回最初发布的交换,但它不是所谓的最佳实践(好吧,它在某些情况下很有效)。但是你必须保护你的应用程序免受失败然后再次传递的循环消息的影响(至少为headres解决了这个问题)。