【发布时间】:2016-05-30 08:10:08
【问题描述】:
我有一个直接交换。还有一个队列,绑定到这个交换。
该队列有两个消费者。消费者在完成相应的处理后手动确认消息。
消息按逻辑排序/排序,并应按该顺序处理。是否可以强制在消费者 A 和消费者 B 之间按顺序接收和处理所有消息?也就是说,防止A和B同时处理消息。
注意:消费者不共享相同的连接和/或通道。这意味着我不能使用<channel>.basicQoS(1);。
这个问题的基本原理:两个消费者是相同的。如果其中一个出现故障,另一个队列将开始处理消息,并且一切都会继续工作,无需任何干预。
【问题讨论】:
-
单身活跃消费者rabbitmq.com/consumers.html#single-active-consumer 怎么样?多个消费者绑定,但所有消息只发送到第一个。如果它死了,则将消息发送到第二个。你得到你的冗余和处理顺序被保留。
-
单个活动消费者看起来确实比独占绑定更干净,但确实需要 RabbitMQ 3.8
标签: rabbitmq amqp high-availability