我尝试设置RabbitMQ,以便根据死亡原因(“x-death.reason”或“x-first-death-reason”都可以)通过死信交换路由消息。
我的理解是,当消息死亡时,“x-death.reason”和“x-first-death-reason”在消息发送到DLX时被设置为头。因此,我的推理是,我应该能够设置与type=headers
的交换,以便能够通过这些头的值进行路由。
不幸的是,我就是不能让它工作。
DLX的设置如下
但是,每个停用消息都会路由到所有绑定队列。
即过滤/路由不起作用。
有人能请让我知道如何正确配置这一点。
谢谢
2条答案
按热度按时间iecba09b1#
来自:https://www.rabbitmq.com/tutorials/amqp-concepts.html#exchange-headers
请注意,以字符串x-开头的标头将不会用于评估匹配项。
szqfcxe22#
来自@abaelter所写的关于交换头的同一文档,但更新了:
对于
any
和all
,以字符串x-
开头的标头将不会用于评估匹配项。将x-match
设置为any-with-x
或all-with-x
也将使用以字符串x-
开头的标头来评估匹配项。现在你可以使用
x-match
与值any-with-x
和标题与x-
应该开始工作。大概是这样的: