我在判断Rabbit MQ是否可以将消息发布到具有多个订阅者的单个队列时遇到了一点麻烦,在该队列的所有订阅者都收到消息之前,消息不会被删除。
我能找到的最接近的是https://www.rabbitmq.com/tutorials/amqp-concepts.html,其中声明:
AMQP 0-9-1有一个称为消息确认的内置功能(有时也称为ack),使用者使用它来确认消息传递和/或处理。如果应用程序崩溃(AMQP代理在连接关闭时会注意到这一点),如果AMQP代理期望收到消息的确认,但未收到,则消息将重新排队(并且可能立即递送给另一个消费者,如果存在的话)。
这是否意味着,如果队列有多个订阅者,它将等待消息被所有订阅者使用?
1条答案
按热度按时间cnh2zyt31#
应该使用绑定到同一交换的多个队列,使用相同的绑定。然后,当消息与绑定匹配时,它将被传递到所有队列,每个队列可能都有一个使用者。
如果在一个队列中有多个使用者,RabbitMQ将在这些使用者之间循环传递(这不是您想要的)。
**注意:**RabbitMQ团队监控
rabbitmq-users
邮件列表,仅在某些时候回答StackOverflow上的问题。