Skip to content
Snippets Groups Projects
Commit fd30dfb8 authored by John Garbutt's avatar John Garbutt Committed by Matt Crees
Browse files

Set RabbitMQ message TTL and queue expiry

Following ideas here:
https://wiki.openstack.org/wiki/Large_Scale_Configuration_Rabbit

Make sure old messages with no consumer are dropped after the message
TTL of 10 mins, longer than the 1 min RPC timeout.
Also ensure queues expire after an hour of inactivity, so queues from
removed nodes or renamed nodes don't grow over time.

Change-Id: Ifb28ac68b6328adb604a7474d01e5f7a47b2e788
parent dae2cbca
No related branches found
No related tags found
No related merge requests found
......@@ -100,9 +100,11 @@ rabbitmq_ha_promote_on_shutdown:
rabbitmq_server_count: "{{ groups[role_rabbitmq_groups] | length }}"
rabbitmq_ha_replica_count: "{{ (rabbitmq_server_count | int // 2 + 1) }}"
# If no TTL is specified, messages will not expire
rabbitmq_message_ttl_ms:
# Set max message ttl to 10 mins (more than 1 min rpc timeout)
# so we don't have queues with no consumers growing unbounded
rabbitmq_message_ttl_ms: 600000
# If no queue expiry is specified, queues will not expire
rabbitmq_queue_expiry_ms:
rabbitmq_queue_expiry_ms: 3600000
rabbitmq_extra_config: {}
####################
......
---
upgrade:
- |
In RabbitMQ, messages now have a TTL of 10 minutes and inactive queues will
expire after 1 hour. These queue arguments can be changed dynamically at
runtime [1], but it should be noted that applying a TTL to queues which
already have messages will discard the messages when specific events occur.
See [2] for more details. Note that the contents of the RabbitMQ
definitions.json are now changed, meaning RabbitMQ containers will be
restarted on next deploy/upgrade.
[1] https://www.rabbitmq.com/queues.html#optional-arguments
[2] https://www.rabbitmq.com/ttl.html#per-message-ttl-caveats
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment