我们正在将amqp消息发送到RabbitMQ,并正在设置message-ttl
属性。如果消息过期,则将它们移动到定义的DLQ。
是否有可能将过期的邮件移至单独的DLQ,以便由于更严重的原因而不会干扰其他邮件移至DLQ?
是,这是可能的。
您需要在队列上设置一个死信交换,并配置消息路由密钥以在消息过期时进行更改。为此,请使用x-dead-letter-routing-key arg。
然后使用您刚刚定义的死信路由键将新队列绑定到DLX。
过期消息将由RabbitMQ发送到DLX,DLX将把它们路由到您仅为过期消息明确定义的队列。
关于此的更多信息:https://www.rabbitmq.com/dlx.html。