RabbitMQ:什么是默认的x-message-ttl值

时间:2014-07-25 00:30:10

标签: rabbitmq amqp

我在RabbitMQ文档中找不到安装时附带的默认x-message-ttl值。

我知道如何将其设置为所需的值,但我很想知道默认值。

1 个答案:

答案 0 :(得分:25)

默认情况下,代理端没有设置x-message-ttl参数,所以基本上你可以将默认值解释为无穷大。

如果在没有ttl set的情况下将没有ttl的消息发布到队列(yupp,有per-message和per-queue ttl参数,请参阅下面的注释):

  • 如果作为持久性消息发布的消息和声明为持久性消息的队列将保留在队列中,只要它不会被消耗;

  • 如果消息未作为持久性发布或者队列未被声明为持久性消息,则只要消息不被消耗或者代理重新启动,消息就会保留在队列中。

TTL说明:

当每个消息和每个队列ttl设置代理都使用最小值时。例如,如果每个消息ttl是10000(10秒)并且每个队列ttl是20000(20秒),那么将应用每个消息ttl。

每条消息TTL备注:

具有过期ttl的邮件将保留在队列中,只要它们没有到达队列头。别担心,它们不会发送给消费者,但他们会占用一些资源,直到他们达到目标。这就是RabbitMQ队列的工作方式(它们坚持FIFO理念,有时可能会破坏与AMQP协议的严格兼容性)。有关详情,请参阅Caveats section in Time-To-Live Extensions