RabbitMQ死信交换-通过“x-death.reason”或“x-first-death-reason”标头路由

a11xaf1n  于 2022-12-13  发布在  RabbitMQ
关注(0)|答案(2)|浏览(199)

我尝试设置RabbitMQ,以便根据死亡原因(“x-death.reason”或“x-first-death-reason”都可以)通过死信交换路由消息。
我的理解是,当消息死亡时,“x-death.reason”和“x-first-death-reason”在消息发送到DLX时被设置为头。因此,我的推理是,我应该能够设置与type=headers的交换,以便能够通过这些头的值进行路由。
不幸的是,我就是不能让它工作。
DLX的设置如下

但是,每个停用消息都会路由到所有绑定队列。

即过滤/路由不起作用。
有人能请让我知道如何正确配置这一点。
谢谢

iecba09b

iecba09b1#

来自:https://www.rabbitmq.com/tutorials/amqp-concepts.html#exchange-headers
请注意,以字符串x-开头的标头将不会用于评估匹配项。

szqfcxe2

szqfcxe22#

来自@abaelter所写的关于交换头的同一文档,但更新了:
对于anyall,以字符串x-开头的标头将不会用于评估匹配项。将x-match设置为any-with-xall-with-x也将使用以字符串x-开头的标头来评估匹配项。
现在你可以使用x-match与值any-with-x和标题与x-应该开始工作。
大概是这样的:

相关问题