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