3.7.28

Latest release in branch 3.7
Released 17 Aug 2020 (5 years ago)

SoftwareRabbitMQ
Branch3.7
Initial release3.7.0
28 Nov 2017 (8 years ago)
Latest patch release3.7.28
17 Aug 2020 (5 years ago)
RequirementErlang/OTP 19.3+
End of community support30 Sep 2020 (Ended 5 years, 7 months ago)
End of commercial support30 Sep 2020 (Ended 5 years, 7 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

Version Release date
3.7.28 17 Aug 2020
(5 years ago)
3.7.27 24 Jul 2020
(5 years ago)
3.7.27-rc.2 24 Jul 2020
(5 years ago)
3.7.27-rc.1 24 Jun 2020
(5 years ago)
3.7.26 04 May 2020
(5 years ago)
3.7.25 09 Apr 2020
(6 years ago)
3.7.25-rc.1 07 Apr 2020
(6 years ago)
3.7.24 12 Feb 2020
(6 years ago)
3.7.24-rc.2 10 Feb 2020
(6 years ago)
3.7.24-rc.1 04 Feb 2020
(6 years ago)
3.7.24-beta.1 21 Dec 2019
(6 years ago)
3.7.23 05 Dec 2019
(6 years ago)
3.7.23-rc.1 03 Dec 2019
(6 years ago)
3.7.22 27 Nov 2019
(6 years ago)
3.7.22-rc.2 21 Nov 2019
(6 years ago)
3.7.22-rc.1 08 Nov 2019
(6 years ago)
3.7.21 01 Nov 2019
(6 years ago)
3.7.20 25 Oct 2019
(6 years ago)
3.7.20-rc.2 24 Oct 2019
(6 years ago)
3.7.20-rc.1 16 Oct 2019
(6 years ago)
3.7.20-beta.1 10 Oct 2019
(6 years ago)
3.7.19 02 Oct 2019
(6 years ago)
3.7.18 17 Sep 2019
(6 years ago)
3.7.18-rc.1 14 Sep 2019
(6 years ago)
3.7.18-beta.1 22 Aug 2019
(6 years ago)
3.7.17 29 Jul 2019
(6 years ago)
3.7.17-rc.3 23 Jul 2019
(6 years ago)
3.7.17-rc.2 21 Jul 2019
(6 years ago)
3.7.17-rc.1 17 Jul 2019
(6 years ago)
3.7.17-beta.1 09 Jul 2019
(6 years ago)
3.7.16 07 Jul 2019
(6 years ago)
3.7.16-rc.4 07 Jul 2019
(6 years ago)
3.7.16-rc.3 18 Jun 2019
(6 years ago)
3.7.16-beta.1 18 Jun 2019
(6 years ago)
3.7.15 18 May 2019
(6 years ago)
3.7.15-beta.1 08 May 2019
(6 years ago)
3.7.14 28 Mar 2019
(7 years ago)
3.7.14-rc.2 28 Mar 2019
(7 years ago)
3.7.14-rc.1 22 Mar 2019
(7 years ago)
3.7.13 07 Mar 2019
(7 years ago)
3.7.13-rc.2 28 Feb 2019
(7 years ago)
3.7.13-rc.1 27 Feb 2019
(7 years ago)
3.7.13-beta.1 22 Feb 2019
(7 years ago)
3.7.12 15 Feb 2019
(7 years ago)
3.7.12-rc.2 10 Feb 2019
(7 years ago)
3.7.12-rc.1 07 Feb 2019
(7 years ago)
3.7.11 31 Jan 2019
(7 years ago)
3.7.11-rc.2 25 Jan 2019
(7 years ago)
3.7.11-rc.1 17 Jan 2019
(7 years ago)
3.7.10 07 Jan 2019
(7 years ago)
3.7.10-rc.4 03 Jan 2019
(7 years ago)
3.7.10-rc.3 27 Dec 2018
(7 years ago)
3.7.10-rc.2 18 Dec 2018
(7 years ago)
3.7.10-rc.1 13 Dec 2018
(7 years ago)
3.7.9 16 Nov 2018
(7 years ago)
3.7.9-rc.3 06 Nov 2018
(7 years ago)
3.7.9-rc.2 26 Oct 2018
(7 years ago)
3.7.9-rc.1 26 Oct 2018
(7 years ago)
3.7.8 20 Sep 2018
(7 years ago)
3.7.8-rc.4 17 Sep 2018
(7 years ago)
3.7.8-rc.3 07 Aug 2018
(7 years ago)
3.7.8-rc.2 31 Jul 2018
(7 years ago)
3.7.8-rc.1 25 Jul 2018
(7 years ago)
3.7.7 05 Jul 2018
(7 years ago)
3.7.7-rc.2 28 Jun 2018
(7 years ago)
3.7.7-rc.1 25 Jun 2018
(7 years ago)
3.7.7-beta.2 19 Jun 2018
(7 years ago)
3.7.7-beta.1 15 Jun 2018
(7 years ago)
3.7.6 13 Jun 2018
(7 years ago)
3.7.6-rc.2 05 Jun 2018
(7 years ago)
3.7.6-rc.1 01 Jun 2018
(7 years ago)
3.7.5 10 May 2018
(7 years ago)
3.7.5-rc.1 02 May 2018
(7 years ago)
3.7.5-beta.3 26 Apr 2018
(8 years ago)
3.7.5-beta.2 04 Apr 2018
(8 years ago)
3.7.5-beta.1 28 Mar 2018
(8 years ago)
3.7.4 07 Mar 2018
(8 years ago)
3.7.4-rc.4 27 Feb 2018
(8 years ago)
3.7.4-rc.3 26 Feb 2018
(8 years ago)
3.7.4-rc.2 23 Feb 2018
(8 years ago)
3.7.4-rc.1 15 Feb 2018
(8 years ago)
3.7.3 25 Jan 2018
(8 years ago)
3.7.3-rc.2 25 Jan 2018
(8 years ago)
3.7.3-rc.1 12 Jan 2018
(8 years ago)
3.7.2 15 Dec 2017
(8 years ago)
3.7.1 15 Dec 2017
(8 years ago)
3.7.1-beta.1 07 Dec 2017
(8 years ago)
3.7.0 28 Nov 2017
(8 years ago)
3.7.0-rc.2 15 Nov 2017
(8 years ago)
3.7.0-rc.1 15 Sep 2017
(8 years ago)
3.7.0-beta.20 11 Sep 2017
(8 years ago)
3.7.0-beta.19 02 Aug 2017
(8 years ago)