【发布时间】:2013-12-13 11:05:09
【问题描述】:
我正在使用 RabbitMq 非常棒的消息代理,但我需要的是队列中有较长的消息备份时间。因此,如果某个消息未到达当时处于非活动状态的某些消费者,而他们在几分钟后处于活动状态,则最终消息应通过扇出交换传递给相应的消费者。
我尝试的是增加队列中的 TTL。是否是正确的方法或其他一些技巧可以做到?
提前致谢
【问题讨论】:
-
也可以设置消息TTL
标签: rabbitmq
我正在使用 RabbitMq 非常棒的消息代理,但我需要的是队列中有较长的消息备份时间。因此,如果某个消息未到达当时处于非活动状态的某些消费者,而他们在几分钟后处于活动状态,则最终消息应通过扇出交换传递给相应的消费者。
我尝试的是增加队列中的 TTL。是否是正确的方法或其他一些技巧可以做到?
提前致谢
【问题讨论】:
标签: rabbitmq
您可以尝试使用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。
【讨论】: