RabbitMQ Headers Exchange X-Match 等于任何

RabbitMQ Headers Exchange where X-Match equals any

有人可以解释为什么会这样吗?

我创建了一个 headers 交换器并将其绑定到三个 queues,参数如下:

然后我尝试发布一条消息,其中 any queue 使用 格式:pdf 会收到它,如下所示:

但交换似乎无法将其路由到正确的 queues,因为我收到以下消息:

因为我找不到和我有同样问题的人,这可能是我在这里做错了什么

请注意,例如,如果我发送 x-match:all格式:pdftype: report, queue test-queue-A 正常获取

可能是我误解了您在描述中提供的各种图片,但根据现有信息 here

您似乎将 x-match=any 添加到消息的 header 中, 而 它预计在您的交易所和 queue 之间的绑定中。

表示绑定的工作原理:

消息和绑定之间的 任何 共同 header 都算作 匹配 ,

所有绑定中引用的headers需要出现在消息中才能匹配