Merge "Set RabbitMQ message TTL and queue expiry"

This commit is contained in:
Zuul 2023-03-24 16:28:43 +00:00 committed by Gerrit Code Review
commit 4971eccd62
2 changed files with 16 additions and 2 deletions

View File

@ -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: {}
####################

View File

@ -0,0 +1,12 @@
---
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