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