[Questions] Rabbit HA Cluster: shall classic durable queues be avoided? #14763
-
Community Support Policy
RabbitMQ version used4.1.2 Erlang version used27.3.x Operating system (distribution) usedUbuntu, Docker Swarm (StackS) How is RabbitMQ deployed?Community Docker image rabbitmq-diagnostics status output... Logs from node 1 (with sensitive values edited out)... Logs from node 2 (if applicable, with sensitive values edited out)... Logs from node 3 (if applicable, with sensitive values edited out)... rabbitmq.confSee https://www.rabbitmq.com/docs/configure#config-location to learn how to find rabbitmq.conf file location Steps to deploy RabbitMQ cluster
Steps to reproduce the behavior in question
advanced.configNo response Application codeNo response Kubernetes deployment fileNo response What problem are you trying to solve?I want to have a highly available RabbitMQ setup which is robust to 1 node going down (we have 3 in total). By robust I mean that my applications that rely on rabbitmq and communicate over it, keep running even when 1 rabbitmq node goes down. However, I noticed that my application gets stuck if 1 RabbitMQ node goes down. I presume the culprits are classic durable queues that are stuck to that node. Shall one avoid |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 6 replies
-
|
If your goal is high availability, you should be using quorum queues (or streams). Those are our highly available types. |
Beta Was this translation helpful? Give feedback.
@YuryHrytsuk I mean, we've only had the Classic Mirrored Queues doc guide flashing explicit warnings in red for a few years.
Not only they "should be avoided" in 4.x where the feature does not exist at all (the CQ mirroring part, classic queues do exist as a non-replicated queue type), they should be avoided, period. Quorum queues have been around since 2018.
In most scenarios classic mirrored queues work exactly as expected. The problem is that in some scenarios they don't, and their distributed algorithm is unfixable for those cases. But your explanation is a significant oversimplification.