Queues created by Shovels aren't quorum queues despite providing x-queue-type #9951
-
| RabbitMQ So I have a few hundred shovels, all of which will use an exchange for Here's an example of a shovel definition that I use. { "parameters": [ { "component": "shovel", "name": "from-centralized-services", "value": { "ack-mode": "on-confirm", "dest-add-forward-headers": true, "dest-exchange": "event", "dest-protocol": "amqp091", "dest-uri": "amqp:///MDM5M3R4NTc4OHk4aHdkbmM4bnM2M2ljXzI3bndmZmFmZHU0eWszbXptOWwwanBtdHkK", "src-delete-after": "never", "src-exchange": "event", "src-exchange-key": "*.anonymized123.annoymized123.#", "src-prefetch-count": 1, "src-protocol": "amqp091", "src-uri": "amqp:///central-services", "dest-queue-args": { "x-queue-type": "quorum" } }, "vhost": "MDM5M3R4NTc4OHk4aHdkbmM4bnM2M2ljXzI3bndmZmFmZHU0eWszbXptOWwwanBtdHkK" } ] }And the prerequisite definitions for above shovel to work. { "vhosts": [ { "limits": [ ["max-queues", 150], ["max-connections", 10] ], "metadata": { "description": "Empty", "tags": ["Empty"] }, "name": "MDM5M3R4NTc4OHk4aHdkbmM4bnM2M2ljXzI3bndmZmFmZHU0eWszbXptOWwwanBtdHkK" } ], "bindings": [ { "arguments": {}, "destination": "amq.gen-G7wpNgJ0OzMYrBlMfeDeYg", "destination_type": "queue", "routing_key": "*.anonymized123.anonymized123.#", "source": "command", "vhost": "MDM5M3R4NTc4OHk4aHdkbmM4bnM2M2ljXzI3bndmZmFmZHU0eWszbXptOWwwanBtdHkK" } ], "exchanges": [{ "arguments": {}, "auto_delete": false, "durable": true, "name": "event", "type": "topic", "vhost": "MDM5M3R4NTc4OHk4aHdkbmM4bnM2M2ljXzI3bndmZmFmZHU0eWszbXptOWwwanBtdHkK" }] }The above shovel ends up creating a classic queue prefixed with Even if I set up the below policy to force mirroring classic queues, it only works for classic queues not created by shovels. rabbitmqctl set_policy ha-exactly-two ".*" '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}' -p "MDM5M3R4NTc4OHk4aHdkbmM4bnM2M2ljXzI3bndmZmFmZHU0eWszbXptOWwwanBtdHkK"This is the guide that I followed. Any tips/suggestions are highly appreciated. Thank you! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 11 replies
-
| RabbitMQ 3.9 is completely out of support. Classic mirrored queues have been deprecated for years (see at the very top) and are scheduled to be removed very soon (#9815). |
Beta Was this translation helpful? Give feedback.
-
|
Exclusive queues cannot be mirrored by definition: their lifecycle is tied to that of a single connection (to a specific node). You can override queue name and arguments for Dynamic shovels. |
Beta Was this translation helpful? Give feedback.
-
| @michaelklishin @mkuratczyk |
Beta Was this translation helpful? Give feedback.
amq.gen-means a server-named, very likely exclusive queue.Exclusive queues cannot be mirrored by definition: their lifecycle is tied to that of a single connection (to a specific node).
You can override queue name and arguments for Dynamic shovels.