使用 RabbitMQ Admin (v3),我尝试创建一个队列,将死信消息发送到默认交换器,并使用路由键“MyErrorRoutingKey”绑定(bind)错误队列。 所以在管理界面中,我将“死信交换”留空。
我只是想知道在尝试创建队列时出现以下消息是否正常:
406 PRECONDITION_FAILED - invalid arg 'x-dead-letter-routing-key' for queue 'MyQueue' in vhost '/': routing_key_but_no_dlx_defined
似乎可以将死信消息路由到默认交换,因为文档中进一步指出:
It is possible to form a cycle of dead-letter queues. For instance, this can happen when a queue dead-letters messages to the default exchange without specifiying a dead-letter routing key. Messages in such cycles (i.e. messages that reach the same queue twice) will be dropped.
那么我应该如何将消息路由到默认交换器?与上面描述的“循环无用死信”不同,我希望能够指定路由 key ,这样我的消息就不会丢失。
最佳答案
老问题,但似乎没有人回答,所以我会尝试一下。
我在使用 Web UI 时遇到了完全相同的错误,但我可以通过手动设置“x-dead-letter-exchange”和“x-dead-letter-routing-key”来解决它自定义参数而不是使用提供的字段。
关于RabbitMQ,死信交换 -> 无法将消息路由到默认交换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141974/