diff --git a/ansible/roles/rabbitmq/defaults/main.yml b/ansible/roles/rabbitmq/defaults/main.yml
index 46d907bf54bada9b5068ce91f687e6ca2ab90fbc..dc807ef5903a0610062c2a28a067b88baaf452a1 100644
--- a/ansible/roles/rabbitmq/defaults/main.yml
+++ b/ansible/roles/rabbitmq/defaults/main.yml
@@ -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: {}
 
 ####################
diff --git a/releasenotes/notes/rabbitmq-set-message-ttl-and-queue-expiry-90c16da5e14c0265.yaml b/releasenotes/notes/rabbitmq-set-message-ttl-and-queue-expiry-90c16da5e14c0265.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..3a829b9fab2372c2cad23388ddaca57fca3d635d
--- /dev/null
+++ b/releasenotes/notes/rabbitmq-set-message-ttl-and-queue-expiry-90c16da5e14c0265.yaml
@@ -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