Rabbitmq 一个交换器和一个队列之间的多个绑定

问题描述 投票:0回答:1

我有 1 个名为

test-exchange
的主题交换和 1 个名为
test-queue
的队列。我在上述交换器和队列之间有以下 2 个绑定

然后我用路由密钥

test-exchange
在交换
test-key
上发送了一条消息。检查队列
test-queue
,只收到1条消息。我预计有 2 条消息,因为我认为该消息将在两条路径上重复。知道为什么会出现这种行为吗?

rabbitmq
1个回答
0
投票

恐怕这是故意的。它与 RabbitMQ 无关,而是与 AMQP 规范相关:

服务器不得将同一消息多次传递到队列,即使队列有多个与该消息匹配的绑定。

来源:https://www.rabbitmq.com/amqp-0-9-1-reference.html

如果希望消息重复,则需要创建两个单独的队列。

但是,如果您确实需要在单个队列中复制这些消息,则更复杂的拓扑可能会有所帮助。例如,您可以将一个交换机绑定到另一个交换机,然后将队列绑定到两个单独的交换机,如下所示: 使用此工具创建的图表:https://jmcle.github.io/rabbitmq-visualizer/#

© www.soinside.com 2019 - 2024. All rights reserved.