我有一个名为test-exchange的主题交换和一个名为test-queue的队列。
test-exchange
test-queue
的数据然后我在交换机test-exchange上发送了一条消息,路由关键字为test-key。返回队列test-queue,只收到1条消息。我预计会收到2条消息,因为我认为消息会在两条路径上重复。知道为什么会出现这种情况吗?
test-key
hrysbysz1#
我担心这是故意的。它与RabbitMQ无关,而是与AMQP规范有关:服务器不能将同一条消息多次传递给队列,即使队列有多个绑定与该消息匹配。来源:https://www.rabbitmq.com/amqp-0-9-1-reference.html如果希望复制消息,则需要创建两个单独的队列。但是,如果您确实需要在单个队列中复制这些消息,则更复杂的拓扑可能会有所帮助。例如,您可以将一个交换机绑定到另一个交换机,然后将队列绑定到两个单独的交换机,如下所示:使用此工具创建的图表:https://jmcle.github.io/rabbitmq-visualizer/#
1条答案
按热度按时间hrysbysz1#
我担心这是故意的。它与RabbitMQ无关,而是与AMQP规范有关:
服务器不能将同一条消息多次传递给队列,即使队列有多个绑定与该消息匹配。
来源:https://www.rabbitmq.com/amqp-0-9-1-reference.html
如果希望复制消息,则需要创建两个单独的队列。
但是,如果您确实需要在单个队列中复制这些消息,则更复杂的拓扑可能会有所帮助。例如,您可以将一个交换机绑定到另一个交换机,然后将队列绑定到两个单独的交换机,如下所示:
使用此工具创建的图表:https://jmcle.github.io/rabbitmq-visualizer/#