RabbitMQ,死信交换->;Can';是否将邮件路由到默认的exchange?

RabbitMQ,死信交换->;Can';是否将邮件路由到默认的exchange?,rabbitmq,amqp,dead-letter,Rabbitmq,Amqp,Dead Letter,在RabbitMQ管理(v3)中,我尝试创建一个队列,该队列将向默认的exchange发送死信消息,其路由键“MyErrorOutingKey”绑定了一个错误队列。 因此,在管理界面中,我将“死信交换”留空 我只是想知道在尝试创建队列时出现以下消息是否正常: 406前置条件_失败-的参数“x死信路由密钥”无效 vhost'/'中的队列'MyQueue':已定义路由_key_但_no_dlx_ 似乎可以将死信消息路由到默认exchange,因为文档中进一步指出: 有可能形成一个死信队列循环。例如,

在RabbitMQ管理(v3)中,我尝试创建一个队列,该队列将向默认的exchange发送死信消息,其路由键“MyErrorOutingKey”绑定了一个错误队列。 因此,在管理界面中,我将“死信交换”留空

我只是想知道在尝试创建队列时出现以下消息是否正常:

406前置条件_失败-的参数“x死信路由密钥”无效 vhost'/'中的队列'MyQueue':已定义路由_key_但_no_dlx_

似乎可以将死信消息路由到默认exchange,因为文档中进一步指出:

有可能形成一个死信队列循环。例如, 当队列将死信消息发送到默认值时,可能会发生这种情况 交换而不指定死信路由密钥。中的消息 此类循环(即两次到达同一队列的消息)将 掉了


那么,我应该如何将消息路由到默认的exchange呢?与上面描述的“循环无用死信”不同,我希望能够指定路由密钥,这样我的消息就不会丢失。

听起来像是路由密钥,但定义的密钥表示,如果不定义死信交换,就不应该定义死信路由密钥,这也是有意义的

我不确定你到底想用默认的交换做什么,但是它也有一个名字,所以也许你也可以设置死信交换

关于您在文件中的最后一次报价,这意味着如果您使用死信交换设置了一个周期,即:

QUEUE-A > DEAD-LETTER-QUEUE > QUEUE-A 队列A>死信队列>队列A …如果消息由于超时而离开死信队列,RabbitMQ将在返回队列A时丢弃该消息。
如果您希望延迟重试,您必须手动将消息排队到死信队列,但有迹象表明RabbitMQ可能会让您在稍后()进行此类循环。

旧问题,但似乎没有人回答,因此我将试一试

我在使用web UI时遇到了完全相同的错误,但我可以通过手动将“x-dead-letter-exchange”和“x-dead-letter-routing-key”设置为自定义参数,而不是使用提供的字段来绕过它