RabbitMQ 4.x classic queue mirroring removal and MQTT high-availability

52 views
Skip to first unread message

Woon Yung Liu

unread,
Jan 20, 2025, 9:21:57 PM1/20/25
to rabbitmq-users
Hi everyone,

As the release notes for the 4.x series states, classic queue mirroring was removed and classic queues are now standalone.

With RabbitMQ 3.x, I found myself having to set up classic queue mirroring to allow for High Availability to work for (at least) QoS1 with clean sessions, otherwise MQTT connections that are affected by the loss of a node will be refused with CONNACK code 3.

The present-day support for quorum queues under the MQTT plugin only supports QoS1 without clean sessions. As described in the original PR for RabbitMQ 3.12: https://github.com/rabbitmq/rabbitmq-server/pull/4254
> Enable the quorum queue for MQTT only if CleanSession is False.
> QQs don't support auto-delete flag so in case Clean session is True
> the queue will be a classic queue.

I checked that if we connected with MQTT QoS1 to RabbitMQ 4.0.5, a classic queue is still created today. If classic queue mirroring is removed, how does high availability get implemented with RabbitMQ 4.x? If high availability is no longer possible for MQTT, are there plans to restore it in the future?

Thank you for your time.
Reply all
Reply to author
Forward
0 new messages