[rabbitmq-discuss] TTLs in 2.5.1

Aaron Westendorf aaron at agoragames.com
Tue Jan 3 16:42:07 GMT 2012

Thank you Emile. We ended up with an application TTL because it was
easier to implement for our use case. In testing queue TTLs, I
observed that I did need to set QoS, else rabbit would stage a message
for delivery to a consumer and thus it no longer resided in the queue
to be expired.

On Tue, Jan 3, 2012 at 7:57 AM, Emile Joubert <emile at rabbitmq.com> wrote:
> Hi Aaron,
> On 20/12/11 03:29, Aaron Westendorf wrote:
>> We're running Rabbit 2.5.1 in a 2 node cluster and need  to implement
>> message TTLs to mitigate some pressing problems. If anyone could help
>> us out with some questions we have that would be most appreciated.
>> Are they fully supported in this version?
> Yes, support for per-queue message TTL was introduced in rabbit 2.2.0.
>> If we're going to enable TTLs, is there a pressing need to upgrade or
>> can we stay on 2.5.1?
> We would always recommend running the latest version. In this case you
> do not need to upgrade specifically to get this feature.
>> Is there anything special to note about them in a 2.5.1 cluster?
> No. per-queue TTL is a queue-specific feature and queues exist only on a
> single node in a 2.5.1 cluster.
>> Do we need to turn on client qos, or will rabbit change its consumer
>> delivery rules on TTL'd messages?
> You do not need to set QoS for messages to expire.
>> Are there any recommended lower bounds on this value?
> This depends on your usage and hardware performance characteristics. You
> should test and validate in a comparable environment before deploying to
> production.
> A value larger than the average latency makes sense.
>> What kind of effect should we expect message TTL to have on resource
>> requirements?
> I would expect perhaps a small improvement since it is easier for the
> broker to expire a message than to deliver.
>> Will this significantly impact the memory footprint specifically?
> The effect would be similar to a consumer that works at the combined
> rate of the publishers.
>> Anything special about TTL in the case where rabbit is already under
>> very high load?
> From the perspective of the persistence layer message expiry is similar
> to message delivery. If your disk is a bottleneck then expiry is
> unlikely to help.
> Also see the notes here:
> http://www.rabbitmq.com/extensions.html#queue-ttl

Aaron Westendorf
Senior Software Engineer
Agora Games
359 Broadway
Troy, NY 12180
Phone: 518.268.1000
aaron at agoragames.com

More information about the rabbitmq-discuss mailing list