Benoit Tellier created JAMES-3604:
-------------------------------------
Summary: RabbitMQ: allow the use of quorum queues
Key: JAMES-3604
URL: https://issues.apache.org/jira/browse/JAMES-3604
Project: James Server
Issue Type: Improvement
Components: rabbitmq
Affects Versions: 3.6.0
Reporter: Benoit Tellier
Fix For: 3.7.0
Having watched a talk about quorum queues [1] and read [2] RabbitMQ HA guide
and [3] RabbitMQ Quorum Queue guide, setting up a higly available RabbitMQ
cluster should be reasonnably easy.
- Exchanges (and their bindings) are replicated out of the box to all nodes.
- Queues can be declared as "quorum" and thus uses RAFT algorithm for
replication.
This can be done via the use of `x-queue-type` with value `quorum`. Also
`x-quorum-initial-group-size` allow controlling the replication factor.
We should allow to choose between `classic` queues or `quorum` queues based on
the configuration. (classic queues are likely faster in a single queue case).
- We likely SHOULD use publish-confirms (we don't...)
Regarding limitations...
> Consumers should use manual acknowledgements to ensure messages that aren't
> successfully processed are returned to the queue so that another consumer can
> re-attempt processing.
So it is meaningless to switch our auto-ack queues to quorum queues.
> In some cases quorum queues should not be used. They typically involve [...]
> exclusive queues.
So let's not switch our exclusive queues to it.
This means we can turn the EventBus and MailQueue work queues to use quorum
queues.
[1]
https://tanzu.vmware.com/content/webinars/jun-11-ha-and-data-safety-in-messaging-quorum-queues-in-rabbitmq?utm_campaign=Global_BT_Q221_RabbitMQ-Data-Safety-in-Messaging&utm_source=rabbitmq&utm_medium=website
[2] https://www.rabbitmq.com/clustering.html
[3] https://www.rabbitmq.com/quorum-queues.html
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]