Latest in branch 3.8
3.8.35
Released 09 Jul 2022
(3 years ago)
SoftwareRabbitMQ
Version3.8
RequirementErlang/OTP 21.3+
Initial release3.8.0
01 Oct 2019
(6 years ago)
Latest release3.8.35
09 Jul 2022
(3 years ago)
End of
community support
31 Jul 2022
(Ended 3 years, 10 months ago)
End of
commercial support
31 Jul 2022
(Ended 3 years, 10 months ago)
Release noteshttps://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.35
Source codehttps://github.com/rabbitmq/rabbitmq-server/tree/v3.8.35
RabbitMQ 3.8 ReleasesView full list

What Is New in RabbitMQ 3.8

RabbitMQ 3.8 introduces major improvements focused on data safety, operational resilience, and modern observability. The key changes are summarized below.

Category Key Changes
New Queue Type Quorum Queues for strong consistency and safer replication.
Operational Features Feature Flags for rolling upgrades; Single Active Consumer for consumer redundancy.
Observability Built-in Prometheus endpoint and Grafana dashboards.
Security & Auth New OAuth 2.0 / JWT authentication backend.
Core Server Configurable max message size; new queue overflow behavior; reduced binding churn.
CLI & Management New health check commands, quorum queue tools, and feature flag management UI.
Plugin Updates MQTT, Shovel, Federation, and Web plugin improvements and bug fixes.

How does RabbitMQ 3.8 improve queue replication and safety?

The headline feature is Quorum Queues. They replace mirrored queues as the recommended replicated queue type for most use cases.

Built on the Raft consensus algorithm, Quorum Queues prioritize data consistency. They offer non-blocking synchronization for new followers and eliminate the "throw away data on rejoin" behavior of classic mirrored queues. This makes node maintenance and recovery more predictable and safer.

Quorum Queues also introduce a delivery limit policy, letting you automatically drop messages after a certain number of redeliveries to handle poison messages. In practice, this means fewer manual interventions and more resilient systems.

What operational hurdles does 3.8 remove for cluster upgrades?

Feature Flags are the answer. They allow a RabbitMQ cluster to be upgraded from 3.7.x to 3.8.x one node at a time without downtime.

The new subsystem holds back new features until all nodes in the cluster are upgraded and an administrator explicitly enables them. This eliminates the old requirement for a full cluster shutdown during major version upgrades, significantly reducing operational complexity.

New CLI Tools for Health and Rebalancing

The rabbitmq-diagnostics tool now offers tiered health checks. The new rabbitmq-queues tool lets you rebalance queue leaders across the cluster after an upgrade, preventing hot spots.

How is monitoring and observability enhanced?

RabbitMQ 3.8 has native Prometheus support. Metrics are exposed on an HTTP endpoint, ready for scraping.

This is complemented by a set of official Grafana dashboards for visualization. The built-in management UI's metric collection can be disabled if you prefer using this modern observability stack. New metrics like "dropped unroutable messages" and "connection churn" provide deeper insight into broker behavior.

What are the new options for authentication and consumer management?

A new plugin enables OAuth 2.0 authentication using JWT tokens. Clients can use access tokens from an external provider, with permissions mapped to OAuth scopes. This facilitates integration with centralized identity providers.

Single Active Consumer

This feature provides a cleaner alternative to exclusive consumers. You can attach multiple consumers to a queue, but only one is active at a time. If it fails, another takes over automatically. This is transparent to the clients and simplifies building redundant consumer setups.

What core server and plugin improvements should I know about?

Several tweaks improve stability and debuggability. The maximum message size is now configurable (default is 128 MiB). A new queue overflow behavior, reject-publish-dlx, rejects publishes and dead-letters the message when a queue is full.

High queue churn (frequent creation/deletion) is less expensive due to changes in how default bindings are stored. For plugins like Shovel and Federation, sensitive credentials in runtime state are now encrypted to prevent accidental logging.

The MQTT plugin now uses a cluster-wide, consistent check for Client IDs, requiring a majority of nodes to be available for client connections.

FAQ

Can I upgrade from RabbitMQ 3.7 to 3.8 without downtime?
Yes, using rolling upgrades and the new Feature Flags system. You can upgrade nodes one by one while the cluster remains operational. Ensure you're on at least 3.7.18 before starting.

Should I use Quorum Queues or Classic Mirrored Queues now?
For new projects requiring data safety, use Quorum Queues. They offer stronger consistency guarantees and better behavior during node failure and recovery. Classic mirrored queues are not deprecated but Quorum Queues are the future.

Does the built-in Prometheus support replace the Management plugin?
No, it's an alternative. You can use the Prometheus endpoint for metrics and Grafana for dashboards, or continue using the Management UI. You can even disable the Management UI's metrics collection to reduce load if you use Prometheus.

My client library works with 3.7.x. Will it break with 3.8?
No. Client libraries compatible with RabbitMQ 3.7.x remain compatible with 3.8.0. The wire protocol is unchanged for core AMQP 0-9-1 operations.

What is the most critical Erlang/OTP compatibility note?
RabbitMQ 3.8 requires Erlang 21.3 or later. If you are upgrading Erlang and RabbitMQ simultaneously, you must upgrade RabbitMQ first, as CLI tools from pre-3.7.7 releases will fail on Erlang 21+.

Releases In Branch 3.8

VersionRelease date
3.8.3509 Jul 2022
(3 years ago)
3.8.3401 Jun 2022
(4 years ago)
3.8.3331 May 2022
(4 years ago)
3.8.3220 May 2022
(4 years ago)
3.8.3110 May 2022
(4 years ago)
3.8.3026 Apr 2022
(4 years ago)
3.8.2913 Apr 2022
(4 years ago)
3.8.2822 Mar 2022
(4 years ago)
3.8.2705 Jan 2022
(4 years ago)
3.8.2618 Nov 2021
(4 years ago)
3.8.2512 Nov 2021
(4 years ago)
3.8.2411 Nov 2021
(4 years ago)
3.8.2323 Sep 2021
(4 years ago)
3.8.2228 Aug 2021
(4 years ago)
3.8.2111 Aug 2021
(4 years ago)
3.8.2009 Aug 2021
(4 years ago)
3.8.1905 Jul 2021
(4 years ago)
3.8.19-rc.102 Jul 2021
(4 years ago)
3.8.1825 Jun 2021
(4 years ago)
3.8.18-rc.122 Jun 2021
(4 years ago)
3.8.18-beta.114 Jun 2021
(4 years ago)
3.8.1708 Jun 2021
(4 years ago)
3.8.17-rc.203 Jun 2021
(5 years ago)
3.8.17-rc.128 May 2021
(5 years ago)
3.8.1604 May 2021
(5 years ago)
3.8.1503 May 2021
(5 years ago)
3.8.15-rc.329 Apr 2021
(5 years ago)
3.8.15-rc.219 Apr 2021
(5 years ago)
3.8.1402 Mar 2021
(5 years ago)
3.8.1327 Feb 2021
(5 years ago)
3.8.13-beta.121 Feb 2021
(5 years ago)
3.8.1216 Feb 2021
(5 years ago)
3.8.12-rc.312 Feb 2021
(5 years ago)
3.8.12-rc.211 Feb 2021
(5 years ago)
3.8.12-rc.102 Feb 2021
(5 years ago)
3.8.12-beta.124 Jan 2021
(5 years ago)
3.8.1121 Jan 2021
(5 years ago)
3.8.1019 Jan 2021
(5 years ago)
3.8.10-rc.615 Jan 2021
(5 years ago)
3.8.10-rc.512 Jan 2021
(5 years ago)
3.8.10-rc.106 Jan 2021
(5 years ago)
3.8.10-beta.108 Nov 2020
(5 years ago)
3.8.924 Sep 2020
(5 years ago)
3.8.803 Sep 2020
(5 years ago)
3.8.717 Aug 2020
(5 years ago)
3.8.604 Aug 2020
(5 years ago)
3.8.6-rc.229 Jul 2020
(5 years ago)
3.8.6-rc.127 Jul 2020
(5 years ago)
3.8.6-beta.127 Jul 2020
(5 years ago)
3.8.515 Jun 2020
(5 years ago)
3.8.5-rc.214 Jun 2020
(5 years ago)
3.8.5-rc.111 Jun 2020
(5 years ago)
3.8.425 May 2020
(6 years ago)
3.8.4-rc.319 May 2020
(6 years ago)
3.8.4-rc.219 May 2020
(6 years ago)
3.8.4-rc.119 May 2020
(6 years ago)
3.8.4-beta.116 May 2020
(6 years ago)
3.8.309 Mar 2020
(6 years ago)
3.8.3-rc.205 Mar 2020
(6 years ago)
3.8.3-rc.113 Feb 2020
(6 years ago)
3.8.3-beta.304 Feb 2020
(6 years ago)
3.8.3-beta.223 Dec 2019
(6 years ago)
3.8.3-beta.121 Dec 2019
(6 years ago)
3.8.202 Dec 2019
(6 years ago)
3.8.2-rc.108 Nov 2019
(6 years ago)
3.8.131 Oct 2019
(6 years ago)
3.8.1-rc.130 Oct 2019
(6 years ago)
3.8.1-beta.224 Oct 2019
(6 years ago)
3.8.1-beta.110 Oct 2019
(6 years ago)
3.8.001 Oct 2019
(6 years ago)
3.8.0-rc.327 Sep 2019
(6 years ago)
3.8.0-rc.222 Sep 2019
(6 years ago)
3.8.0-rc.108 Sep 2019
(6 years ago)
3.8.0-beta.720 Aug 2019
(6 years ago)
3.8.0-beta.603 Aug 2019
(6 years ago)
3.8.0-beta.509 Jul 2019
(6 years ago)
3.8.0-beta.410 May 2019
(7 years ago)
3.8.0-beta.306 Mar 2019
(7 years ago)
3.8.0-beta.231 Jan 2019
(7 years ago)
3.8.0-beta.108 Nov 2018
(7 years ago)