Is there a way to make all new queues quorum queues by default?

96 views
Skip to first unread message

Chris Ward

unread,
Apr 23, 2021, 3:44:16 PM4/23/21
to rabbitmq-users
Is there a way to make all new queues quorum queues by default? 
We have an application that is creating classic queues and we cant change it..
so wondering if we can make Quorum by default.
(its breaking our HA setup).
Thanks

Michal Kuratczyk

unread,
Apr 26, 2021, 7:33:42 AM4/26/21
to rabbitm...@googlegroups.com
Hi,

There is no such option, at least right now. The best we can suggest is to pre-declare your queues before deploying the app. However, in this case the app will get errors when it tries to redeclare the queues with incompatible options - not sure how it will handle that. Moreover, QQs don't support every single classic queue feature - are you sure this application will even work with quorum queues?

Best,

--
You received this message because you are subscribed to the Google Groups "rabbitmq-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rabbitmq-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rabbitmq-users/b0e82aba-fe37-4fbd-9e09-1a1c75f43556n%40googlegroups.com.


--
Michał
RabbitMQ team

Chris Ward

unread,
Apr 28, 2021, 10:14:00 AM4/28/21
to rabbitmq-users
Thanks.

We setup rabbit etc in kubenetes for HA purposes and we have a 3 node cluster.

Unfortunately, we cant seem to control the app. it creates 'temporary queues'.
The queues though only are on 1 rabbit  node.

We've been having an issue in k8 where a whole node goes offline (rook... whole different story)... but if any of these temporary queues are on the rabbit node that resides on the k8 node that went down...
the whole application stops working.
basically,  our weakest link is the fact these temporary queues arnt HA.

thus were trying to force the queues to be quorum at least replicated over the 3 rabbit nodes.

Any ideas?

Michal Kuratczyk

unread,
Apr 29, 2021, 9:06:46 AM4/29/21
to rabbitm...@googlegroups.com
Hi,

A "temporary" queue that has to be replicated and is a single point of failure for an application, doesn't sound like a temporary queue. ;)
Again - no such option right now. Have you tried pre-declaring the queues? The outcomes depend on how the application is written (it can fail trying to redeclare the queue with incompatible options).

Best,

RabbitMQ team

Chris Ward

unread,
Apr 30, 2021, 12:42:33 PM4/30/21
to rabbitm...@googlegroups.com
yeah.. I get what you mean.
We'll see if we can pre-declare.

The names seem random though 

the issue we see if that if a k8 node goes now, the rabbit node goes down and the queue metadata still indiciates its there but the it cant be accessed... thus wanting to replicate it over the nodes.
There any way to default that with classic queues?

Cheers
Chris



You received this message because you are subscribed to a topic in the Google Groups "rabbitmq-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/rabbitmq-users/B6xC47MKJKs/unsubscribe.
To unsubscribe from this group and all its topics, send an email to rabbitmq-user...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rabbitmq-users/CAA81d0uViWtVkSnKKsgByTYiQwtGNBK9ArSeDYZvatmHNTbOfQ%40mail.gmail.com.

Michal Kuratczyk

unread,
Apr 30, 2021, 1:48:39 PM4/30/21
to rabbitm...@googlegroups.com
Not sure if this will meet your needs but if the queues are really temporary, perhaps you can set an expiration policy on them: https://www.rabbitmq.com/ttl.html#queue-ttl-using-policy?

I don't know the behaviour if it's the node that crashes (usually it's used to auto-delete a queue when all clients disconnect) but you can play with this to test if it does what you need. If it deletes a queue when such an outage occurs, the app should be able to redeclare it.

Best,



--
Michał
RabbitMQ team

Chris Ward

unread,
May 3, 2021, 9:30:44 AM5/3/21
to rabbitm...@googlegroups.com
As it's in k8, the app is/can be running on a different node so the app doesn't necessarily go down if the node rabbit is running on does.

It can't access the queues though that are on the rabbit node that went down



Michal Kuratczyk

unread,
May 4, 2021, 5:14:55 AM5/4/21
to rabbitm...@googlegroups.com
Understood. My point was that an auto_delete queue is deleted when there are no clients. I'm not sure about the behaviour in your scenario but I was thinking perhaps it would be automatically deleted simply because there are no more clients connected (even though the app is running). If that's the case then the app should be able to connect to another node and declare this queue again because its previous incarnation no longer exists.




--
Michał
Reply all
Reply to author
Forward
0 new messages