RabbitMQ 有没有办法让多个消费者从同一个队列中获取相同的消息?
我需要将相同的信息发送给任何正在倾听的人,但还要确保有人处理它。基本上,我需要 扇出与 相结合的交换功能basic.ack 队列的功能。有没有办法以可扩展的方式实现这一点?
最佳答案
如果您试图确保正确处理消息,确认已提供此功能。如果您的消费者无法处理该消息并且未提供 ack,它将被重新排队并由下一个可用的消费者再次处理。在同一个队列上实现多个竞争消费者将为您提供循环交付,让其他消费者有机会成功。
这将如何扩展取决于与传入速率、队列持久性、预取以及队列上有多少竞争消费者相比,处理每条消息所需的时间。
关于RabbitMQ:从队列扇出(不是从交换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19389249/