这是我们在这里的:
- 主题交换
DLE
,旨在成为死信交换 - 主题交换
E
,这是“主要”交换 - 几个队列 (
EQ1
, ...,EQn
) 绑定到E
(并用 初始化x-dead-letter-exchange = DLE
),每个队列都有自己的 Routing Key。这些队列是从中消费的。 - 对于每个
EQn
,都有一个(用和DLEQn
初始化),绑定到与 相同的路由键。这些队列没有被消耗x-dead-letter-exchange = E
x-message-ttl = 5000
DLE
EQn
我想要的是以下内容:如果消费者无法处理来自EQn
的消息,它会使用 Nacks 消息requeue: false
并到达DLEQn
- 也就是说,到达死信交换上的适当队列。现在,我希望这条消息在队列中DLEQn
停留一段时间,然后被路由回原始队列EQn
以再次处理。
尽我所能,我无法让“重新传递到原始队列”工作。我看到消息位于DLEQn
所有正确的标头和路由密钥完好无损,但在 TTL 到期后,它们就消失得无影无踪。
我在这里做错了什么?