Latest in branch 3.7
3.7.28
Released 17 Aug 2020
(5 years ago)
SoftwareRabbitMQ
Version3.7
RequirementErlang/OTP 19.3+
Initial release3.7.0
28 Nov 2017
(8 years ago)
Latest release3.7.28
17 Aug 2020
(5 years ago)
End of
community support
30 Sep 2020
(Ended 5 years, 8 months ago)
End of
commercial support
30 Sep 2020
(Ended 5 years, 8 months ago)
Release noteshttps://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.28
Source codehttps://github.com/rabbitmq/rabbitmq-server/tree/v3.7.28
RabbitMQ 3.7 ReleasesView full list

What Is New in RabbitMQ 3.7

RabbitMQ 3.7.0 is a major release packed with significant enhancements to the core server, management, tooling, and client libraries. It introduces a new configuration format, pluggable clustering, per-vhost message stores, and requires Erlang 19.3 or later.

Category Key Changes
Breaking Changes Erlang 19.3+ required; HTTP API changes; .NET/Java client releases decoupled; rabbitmq_management_visualiser plugin deprecated.
Core Server New config format; pluggable peer discovery; separate message stores per vhost; Lager logging; topic authorization; proxy protocol support.
CLI Tools Redesigned, extensible CLI with new rabbitmq-diagnostics tool; bulk connection close command.
Management Plugin Distributed stats; migrated to Cowboy REST; administrator tag grants implicit vhost access; IPv6 support.
Clients & Plugins .NET Core support; Java client TLS 1.2 default; MQTT topic auth; Shovel supports AMQP 1.0; LDAP backend enhancements.

What are the major breaking changes?

You must upgrade Erlang to at least version 19.3 before installing RabbitMQ 3.7. This version also fully supports Erlang/OTP 20.

The release decouples the .NET and Java client libraries from the server's release cycle. You now get them via NuGet and Maven repositories respectively. Also, the rabbitmq_management_visualiser plugin no longer ships with the server and must be disabled before upgrading.

HTTP API Changes

Several management API endpoints have minor breaking changes. For example, successful POST and PUT requests now return 201 Created instead of 204 No Content. The node stats endpoint returns a more detailed memory breakdown.

How is cluster formation improved?

Cluster setup for new nodes is now pluggable. You can discover peers using built-in file or DNS backends, or use community plugins for AWS, Consul, etcd, or Kubernetes.

Nodes can now be restarted in any order. A restarting node will attempt to reconnect to known peers several times, which simplifies recovery procedures. This feature was adopted from the rabbitmq-autocluster plugin.

What's new in the configuration system?

A new, simpler configuration file format is introduced, similar to sysctl or .ini files. You can use rabbitmq.conf for this new style while still supporting the classic Erlang term format in advanced.config.

# Example new format in rabbitmq.conf
loopback_users.guest = false
vm_memory_high_watermark.relative = 0.75

The system also now accepts config file paths with or without the .config or .conf extension, removing a common source of admin error.

How does the new logging system help operators?

RabbitMQ 3.7 switches to the Lager logging framework. This provides a dedicated debug log level, makes the system less prone to log overload, and allows for pluggable log backends.

You have finer control over log output and can route logs to different destinations. This is particularly useful for debugging in production without impacting performance.

What multi-tenancy improvements were added?

Each virtual host now uses its own dedicated message store. This reduces contention and improves isolation between tenants. It also paves the way for better backup and recovery tools.

Operators can set limits on the number of concurrent connections and queues per vhost. New "operator policies" let you enforce global limits, like message TTL, that merge with user-defined policies.

How are the command line tools better?

The CLI tools were completely redesigned to be extensible by plugins and support command aliases, similar to Git. A new rabbitmq-diagnostics command is added for health checks.

Useful new commands include closing all connections in a vhost in one go, listing non-AMQP connections (like MQTT), and checking for stuck processes within the broker.

What changed in the management plugin?

The statistics database is now distributed; each node stores its own metrics. This improves scalability and reduces cross-node traffic.

Users with the administrator tag now implicitly get full access to all vhosts, simplifying management. The plugin's HTTP layer was migrated from Webmachine to Cowboy REST, a more modern Erlang web server.

FAQ

We use the management visualiser plugin. What should we do before upgrading?
You must disable the rabbitmq_management_visualiser plugin before upgrading to 3.7, as it is deprecated and no longer included. Use rabbitmq-plugins disable rabbitmq_management_visualiser.

Does the new per-vhost message store layout affect upgrades?
Yes. During the upgrade, data is migrated to the new layout, which can take time. To speed it up, drain your queues by stopping publishers and letting consumers catch up before you begin the upgrade.

Our plugin doesn't appear in rabbitmq-plugins list after upgrading. Why?
Plugins must now declare a dependency on the core rabbit application to be listed. Plugins without this dependency will still work but won't show up in the list command.

We use the Shovel plugin with AMQP 1.0. Is that supported now?
Yes. The Shovel plugin in 3.7 gains support for AMQP 1.0, enabling cross-protocol shoveling between AMQP 0-9-1 and AMQP 1.0 endpoints.

Can we set a default prefetch limit for all channels?
Yes. A new server configuration allows setting a default channel-level prefetch value. This helps prevent poorly behaved consumers from exhausting server resources, but ensure your manual-ack consumers can handle it before enabling.

Releases In Branch 3.7

VersionRelease date
3.7.2817 Aug 2020
(5 years ago)
3.7.2724 Jul 2020
(5 years ago)
3.7.27-rc.224 Jul 2020
(5 years ago)
3.7.27-rc.124 Jun 2020
(5 years ago)
3.7.2604 May 2020
(6 years ago)
3.7.2509 Apr 2020
(6 years ago)
3.7.25-rc.107 Apr 2020
(6 years ago)
3.7.2412 Feb 2020
(6 years ago)
3.7.24-rc.210 Feb 2020
(6 years ago)
3.7.24-rc.104 Feb 2020
(6 years ago)
3.7.24-beta.121 Dec 2019
(6 years ago)
3.7.2305 Dec 2019
(6 years ago)
3.7.23-rc.103 Dec 2019
(6 years ago)
3.7.2227 Nov 2019
(6 years ago)
3.7.22-rc.221 Nov 2019
(6 years ago)
3.7.22-rc.108 Nov 2019
(6 years ago)
3.7.2101 Nov 2019
(6 years ago)
3.7.2025 Oct 2019
(6 years ago)
3.7.20-rc.224 Oct 2019
(6 years ago)
3.7.20-rc.116 Oct 2019
(6 years ago)
3.7.20-beta.110 Oct 2019
(6 years ago)
3.7.1902 Oct 2019
(6 years ago)
3.7.1817 Sep 2019
(6 years ago)
3.7.18-rc.114 Sep 2019
(6 years ago)
3.7.18-beta.122 Aug 2019
(6 years ago)
3.7.1729 Jul 2019
(6 years ago)
3.7.17-rc.323 Jul 2019
(6 years ago)
3.7.17-rc.221 Jul 2019
(6 years ago)
3.7.17-rc.117 Jul 2019
(6 years ago)
3.7.17-beta.109 Jul 2019
(6 years ago)
3.7.1607 Jul 2019
(6 years ago)
3.7.16-rc.407 Jul 2019
(6 years ago)
3.7.16-rc.318 Jun 2019
(6 years ago)
3.7.16-beta.118 Jun 2019
(6 years ago)
3.7.1518 May 2019
(7 years ago)
3.7.15-beta.108 May 2019
(7 years ago)
3.7.1428 Mar 2019
(7 years ago)
3.7.14-rc.228 Mar 2019
(7 years ago)
3.7.14-rc.122 Mar 2019
(7 years ago)
3.7.1307 Mar 2019
(7 years ago)
3.7.13-rc.228 Feb 2019
(7 years ago)
3.7.13-rc.127 Feb 2019
(7 years ago)
3.7.13-beta.122 Feb 2019
(7 years ago)
3.7.1215 Feb 2019
(7 years ago)
3.7.12-rc.210 Feb 2019
(7 years ago)
3.7.12-rc.107 Feb 2019
(7 years ago)
3.7.1131 Jan 2019
(7 years ago)
3.7.11-rc.225 Jan 2019
(7 years ago)
3.7.11-rc.117 Jan 2019
(7 years ago)
3.7.1007 Jan 2019
(7 years ago)
3.7.10-rc.403 Jan 2019
(7 years ago)
3.7.10-rc.327 Dec 2018
(7 years ago)
3.7.10-rc.218 Dec 2018
(7 years ago)
3.7.10-rc.113 Dec 2018
(7 years ago)
3.7.916 Nov 2018
(7 years ago)
3.7.9-rc.306 Nov 2018
(7 years ago)
3.7.9-rc.226 Oct 2018
(7 years ago)
3.7.9-rc.126 Oct 2018
(7 years ago)
3.7.820 Sep 2018
(7 years ago)
3.7.8-rc.417 Sep 2018
(7 years ago)
3.7.8-rc.307 Aug 2018
(7 years ago)
3.7.8-rc.231 Jul 2018
(7 years ago)
3.7.8-rc.125 Jul 2018
(7 years ago)
3.7.705 Jul 2018
(7 years ago)
3.7.7-rc.228 Jun 2018
(7 years ago)
3.7.7-rc.125 Jun 2018
(7 years ago)
3.7.7-beta.219 Jun 2018
(7 years ago)
3.7.7-beta.115 Jun 2018
(7 years ago)
3.7.613 Jun 2018
(7 years ago)
3.7.6-rc.205 Jun 2018
(8 years ago)
3.7.6-rc.101 Jun 2018
(8 years ago)
3.7.510 May 2018
(8 years ago)
3.7.5-rc.102 May 2018
(8 years ago)
3.7.5-beta.326 Apr 2018
(8 years ago)
3.7.5-beta.204 Apr 2018
(8 years ago)
3.7.5-beta.128 Mar 2018
(8 years ago)
3.7.407 Mar 2018
(8 years ago)
3.7.4-rc.427 Feb 2018
(8 years ago)
3.7.4-rc.326 Feb 2018
(8 years ago)
3.7.4-rc.223 Feb 2018
(8 years ago)
3.7.4-rc.115 Feb 2018
(8 years ago)
3.7.325 Jan 2018
(8 years ago)
3.7.3-rc.225 Jan 2018
(8 years ago)
3.7.3-rc.112 Jan 2018
(8 years ago)
3.7.215 Dec 2017
(8 years ago)
3.7.115 Dec 2017
(8 years ago)
3.7.1-beta.107 Dec 2017
(8 years ago)
3.7.028 Nov 2017
(8 years ago)
3.7.0-rc.215 Nov 2017
(8 years ago)
3.7.0-rc.115 Sep 2017
(8 years ago)
3.7.0-beta.2011 Sep 2017
(8 years ago)
3.7.0-beta.1902 Aug 2017
(8 years ago)