RabbitMQ TTL最大ms以维持队列中的消息

我正在使用RabbitMq真正令人惊叹的消息代理,但我需要的是在队列中有长消息备份时间.因此,如果没有达到某个消费者的消息,那些消费者当时处于非活动状态,并且他们在几分钟之后处于活动状态,那么消息应该通过扇出交换传递给相应的消费者.

我尝试的是我在队列中增加了TTL.无论是正确的方式还是其他一些技巧都可以做到?

提前致谢

最佳答案 您可以尝试使用带有x-message-ttl和x-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.

点赞