gpt4 book ai didi

RabbitMQ 死信交换从未收到消息

转载 作者:行者123 更新时间:2023-12-03 06:47:10 24 4
gpt4 key购买 nike

我正在尝试设置我的第一个 RabbitMQ 死信交换,以下是我通过 Web 管理界面使用的步骤:

  1. 创建名为“dead.letter.test”的新 DIRECT 交换
  2. 创建新队列“dead.letter.queue”
  3. 将“dead.letter.queue”绑定(bind)到“dead.letter.test”
  4. 创建新队列“test1”,并将死信交换设置为“dead.letter.test”
  5. 向“test1”发送消息
  6. Nack(requeue = false)“test1”中的消息

我期望这些步骤应该通过“dead.letter.test”交换将记录放入“dead.letter.queue”中。这并没有发生。

我可以手动将消息放入“dead.letter.test”交换中,它会显示在“dead.letter.queue”中,所以我知道这没问题。

当我查看管理 UI 时,它显示 DLX 参数已在队列“test1”上设置。

我哪里出错了?

最佳答案

Gentilissimo Signore 很友善地在 Twitter 上回答了我的问题。问题是,如果您的死信交换设置为 DIRECT,您必须指定死信路由 key 。如果您只想将所有 NACKed 消息放入死信桶中以供以后调查(就像我所做的那样),那么您的死信交换应该设置为 FANOUT。

以下是有效的更新步骤:

  1. 创建名为“dead.letter.test”的新 FANOUT 交换
  2. 创建新队列“dead.letter.queue”
  3. 将“dead.letter.queue”绑定(bind)到“dead.letter.test”
  4. 创建新队列“test1”,并将死信交换设置为“dead.letter.test”
  5. 向“test1”发送消息
  6. Nack(requeue = false)“test1”中的消息

关于RabbitMQ 死信交换从未收到消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21742232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com