RabbitMQ在队列中维持消息的最大TTL毫秒数



我使用的RabbitMq消息代理非常棒,但我需要的是在队列中有很长的消息备份时间。因此,如果消息没有到达当时处于非活动状态的某些消费者,并且他们在几分钟后处于活动状态,则最终应通过扇出交换将消息传递给相应的消费者。

我尝试的是增加了队列中的TTL。这是正确的方法还是其他一些技巧?

提前感谢

您可以尝试使用带有x-message-ttlx-dead-letter-exchange 的队列

args.put("x-message-ttl", 10000); 
args.put("x-dead-letter-exchange",exchange_dead_letter); 
channel.queueDeclare(queue, false, false, false, args);

x-dead-letter-exchange是交换,如果消息在TTL时间之前过期,则将消息重定向到x-dead-letter-exchange

然后,您可以根据自己的喜好处理消息。您可以在此处找到更多详细信息:http://www.rabbitmq.com/dlx.html.

最新更新