RabbitMQ Headers Exchange,其中X-Match等于任何

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RabbitMQ Headers Exchange,其中X-Match等于任何相关的知识,希望对你有一定的参考价值。

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

我创建了一个头交换并将其绑定到三个具有不同参数的队列,如下所示:

enter image description here

然后我尝试发布一条消息,其中任何格式为:pdf的队列都会收到它,如下所示:

enter image description here

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

enter image description here

由于我找不到与我有同样问题的人,这可能是我在这里做错了

请注意,例如,如果我发送x-match:all,format:pdf和type:report,则队列test-queue-A正常获取它

答案

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

看起来您正在将x-match=any添加到邮件的标题中,而在您的交换和队列之间的绑定中可能会出现这种情况。

它表明绑定的工作原理:

消息和绑定之间的任何公共标头都计为匹配,

或者绑定中引用的所有头文件都需要出现在消息中才能匹配。

以上是关于RabbitMQ Headers Exchange,其中X-Match等于任何的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ - 介绍

RabbitMQ使用详解

RabbitMQ exchange binding queue原理

RabbitMQ 2

RabbitMQ交换机规则实例

RabbitMQ交换机