【问题标题】:RabbitMQ TTL maximum ms to sustain message in queueRabbitMQ TTL 最大毫秒来维持队列中的消息
【发布时间】:2013-12-13 11:05:09
【问题描述】:

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

我尝试的是增加队列中的 TTL。是否是正确的方法或其他一些技巧可以做到?

提前致谢

【问题讨论】:

  • 也可以设置消息TTL

标签: rabbitmq


【解决方案1】:

您可以尝试使用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

【讨论】:

    猜你喜欢
    • 2017-04-09
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多