Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.7.20
RabbitMQ 3.7.20
RabbitMQ 3.7.20 is a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
of a rolling upgrade-then-restart for each node individually.GitHub issue: rabbitmq/rabbitmq-server#2132
-
Improved error handling in a module that continuously registers the node with epmd avoids
log noise.GitHub issue: rabbitmq/rabbitmq-server#2130
CLI Tools
Bug Fixes
-
rabbitmqctl await_startupfailed with an exception when effective timeout was set toinfinity.GitHub issue: rabbitmq/rabbitmq-server#2144
-
rabbitmq-diagnostics check_port_connectivityproduced a false positive in an IPv6-only environment.Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-cli#385
-
rabbitmq-diagnostics status,rabbitmq-diagnostics cluster_status,rabbitmq-diagnostics listenersnow support
--formatter=erlang(raw Erlang data structure output)GitHub issue: rabbitmq/rabbitmq-cli#383
Kubernetes Peer Discovery Plugin
Bug Fixes
-
Requests to Kubernetes API endpoints failed with an
nxdomain(domain name resolution failure)
in an IPv6-only environment. Now the plugin will configure its HTTP[S] client to use IPv6 if
the inetrc file tells it to.
See Using IPv6 for Inter-node Communication (and CLI Tools) to learn more.GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#55
AWS Peer Discovery Plugin
Bug Fixes
-
The plugin will now configure its HTTP[S] client to use IPv6 if
the inetrc file tells it to.
See Using IPv6 for Inter-node Communication (and CLI Tools) to learn more.GitHub issue: rabbitmq/rabbitmq-peer-discovery-aws#32
Consul Peer Discovery Plugin
Enhancements
-
It is now possible to specify service metadata values:
cluster_formation.consul.svc_meta.key1 = value1 cluster_formation.consul.svc_meta.key2 = value2
GitHub issue: rabbitmq/rabbitmq-peer-discovery-consul#34
Bug Fixes
-
The plugin will now configure its HTTP[S] client to use IPv6 if
the inetrc file tells it to.
See Using IPv6 for Inter-node Communication (and CLI Tools) to learn more.GitHub issue: rabbitmq-peer-discovery-consul#36
etcd Peer Discovery Plugin
Bug Fixes
-
The plugin will now configure its HTTP[S] client to use IPv6 if
the inetrc file tells it to.
See Using IPv6 for Inter-node Communication (and CLI Tools) to learn more.GitHub issue: rabbitmq/rabbitmq-peer-discovery-etcd#19
Erlang Client
Bug Fixes
-
Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
Contributed by Giuseppe D'Anna (@larrywax).
GitHub issue: rabbitmq/rabbitmq-erlang-client#126
LDAP Plugin
Enhancements
-
The plugin will no log a warning when DN lookup settings are incomplete.
GitHub issue: rabbitmq/rabbitmq-auth-backend-ldap#114
Tracing Plugin
Bug Fixes
-
On Windows, deleting the file used by an active (running) trace resulted in an
EACCESexception.GitHub issue: rabbitmq/rabbitmq-tracing#31
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.20.tar.xz.
RabbitMQ 3.8.1-beta.2
RabbitMQ 3.8.1-beta.2
RabbitMQ 3.8.1-beta.2 is a preview of a maintenance release that focuses on bug fixes.
Erlang/OTP Compatibility Notes
This release requiresErlang/OTP 21.3.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6 or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded at the same time as Erlang. Alternatively the node can be upgraded
to 3.7.18 first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.0.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
of a rolling upgrade-then-restart for each node individually.GitHub issue: rabbitmq/rabbitmq-server#2132
-
Improved error handling in a module that continuously registers the node with epmd avoids
log noise.GitHub issue: rabbitmq/rabbitmq-server#2130
Enhancements
-
Peak quorum queue memory usage was reduced by up to 25% on some workloads.
GitHub issue: rabbitmq/rabbitmq-server#2138
CLI Tools
Bug Fixes
-
rabbitmqctl await_startupfailed with an exception when effective timeout was set toinfinity.GitHub issue: rabbitmq/rabbitmq-server#2144
-
rabbitmq-diagnostics check_port_connectivityproduced a false positive in an IPv6-only environment.Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-cli#385
-
rabbitmq-diagnostics status,rabbitmq-diagnostics cluster_status,rabbitmq-diagnostics listenersnow support
--formatter=erlang(raw Erlang data structure output)GitHub issue: rabbitmq/rabbitmq-cli#383
Enhancements
-
rabbitmq-diagnostics consume_event_streamis a new command that makes it easier to consume a stream
of internal commands. This can be useful for troubleshooting and auditing. Previously this was only
possible via the rabbitmq-event-exchange plugin.GitHub issue: rabbitmq/rabbitmq-cli#299
-
rabbitmq-diagnostics check_certificate_expirationis a new health check command
that fails when any of the certificates used by target node expire within a specified time window.rabbitmq-diagnostics certificatesis its diagnostics (informative) counterpart that displays all CA and leaf certificates
used by target node.GitHub issue: rabbitmq/rabbitmq-cli#305
Prometheus Plugin
Bug Fixes
-
Prometheus scraping API endpoint accepted an unreasonably strict set of content types from clients,
which caused Telegraf Prometheus input requests to fail with an406 Not Acceptableresponse.GitHub issue: rabbitmq/rabbitmq-prometheus#12
Management Plugin
Bug Fixes
-
Some metrics were omitted in the UI for queues that did not have
x-queue-typeset.GitHub issue: rabbitmq/rabbitmq-management#741
Kubernetes Peer Discovery Plugin
Bug Fixes
-
Requests to Kubernetes API endpoints failed with an
nxdomain(domain name resolution failure)
in an IPv6-only environment.GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#55
Consul Peer Discovery Plugin
Enhancements
-
It is now possible to specify service metadata values:
cluster_formation.consul.svc_meta.key1 = value1 cluster_formation.consul.svc_meta.key2 = value2
GitHub issue: rabbitmq/rabbitmq-peer-discovery-consul#34
STOMP Plugin
Enhancements
-
The
x-queue-typeheader is now accepted from STOMP clients.GitHub issue: rabbitmq/rabbitmq-stomp#138
Erlang Client
Bug Fixes
-
Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
Contributed by Giuseppe D'Anna (@larrywax).
GitHub issue: rabbitmq/rabbitmq-erlang-client#126
Tracing Plugin
Bug Fixes
-
On Windows, deleting the file used by an active (running) trace resulted in an
EACCESexception.GitHub issue: rabbitmq/rabbitmq-tracing#31
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.8.1.tar.xz.
RabbitMQ 3.7.20-rc.2
RabbitMQ 3.7.20-rc.2
RabbitMQ 3.7.20-rc.2 is a maintenance release candidate that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
of a rolling upgrade-then-restart for each node individually.GitHub issue: rabbitmq/rabbitmq-server#2132
-
Improved error handling in a module that continuously registers the node with epmd avoids
log noise.GitHub issue: rabbitmq/rabbitmq-server#2130
CLI Tools
Bug Fixes
-
rabbitmqctl await_startupfailed with an exception when effective timeout was set toinfinity.GitHub issue: rabbitmq/rabbitmq-server#2144
-
rabbitmq-diagnostics check_port_connectivityproduced a false positive in an IPv6-only environment.Contributed by Gabriele Santomaggio.
GitHub issue: rabbitmq/rabbitmq-cli#385
-
rabbitmq-diagnostics status,rabbitmq-diagnostics cluster_status,rabbitmq-diagnostics listenersnow support
--formatter=erlang(raw Erlang data structure output)GitHub issue: rabbitmq/rabbitmq-cli#383
Kubernetes Peer Discovery Plugin
Bug Fixes
-
Requests to Kubernetes API endpoints failed with an
nxdomain(domain name resolution failure)
in an IPv6-only environment.GitHub issue: rabbitmq/rabbitmq-peer-discovery-k8s#55
Consul Peer Discovery Plugin
Enhancements
-
It is now possible to specify service metadata values:
cluster_formation.consul.svc_meta.key1 = value1 cluster_formation.consul.svc_meta.key2 = value2
GitHub issue: rabbitmq/rabbitmq-peer-discovery-consul#34
Erlang Client
Bug Fixes
-
Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
Contributed by Giuseppe D'Anna (@larrywax).
GitHub issue: rabbitmq/rabbitmq-erlang-client#126
LDAP Plugin
Enhancements
-
The plugin will no log a warning when DN lookup settings are incomplete.
GitHub issue: rabbitmq/rabbitmq-auth-backend-ldap#114
Tracing Plugin
Bug Fixes
-
On Windows, deleting the file used by an active (running) trace resulted in an
EACCESexception.GitHub issue: rabbitmq/rabbitmq-tracing#31
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.20.tar.xz.
RabbitMQ 3.7.20-rc.1
RabbitMQ 3.7.20-rc.1
RabbitMQ 3.7.20-rc.1 is a preview of a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
of a rolling upgrade-then-restart for each node individually.GitHub issue: rabbitmq/rabbitmq-server#2132
-
Improved error handling in a module that continuously registers the node with epmd avoids
log noise.GitHub issue: rabbitmq/rabbitmq-server#2130
Erlang Client
Bug Fixes
-
Connection could not be restarted after a heartbeat timeout due to strict pattern matching.
Contributed by Giuseppe D'Anna (@larrywax).
GitHub issue: rabbitmq/rabbitmq-erlang-client#126
LDAP Plugin
Enhancements
-
The plugin will no log a warning when DN lookup settings are incomplete.
GitHub issue: rabbitmq/rabbitmq-auth-backend-ldap#114
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.20.tar.xz.
RabbitMQ 3.8.1-beta.1
RabbitMQ 3.8.1
RabbitMQ 3.8.1-beta.1 is a preview of a maintenance release that focuses on bug fixes.
Erlang/OTP Compatibility Notes
This release requiresErlang/OTP 21.3.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release from 3.7.6 or an older version, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded at the same time as Erlang. Alternatively the node can be upgraded
to 3.7.18 first, then Erlang 21.x or 22.x, then to RabbitMQ 3.8.0.
Upgrade Doc Guides and Change Log
See 3.8.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
of a rolling upgrade-then-restart for each node individually.GitHub issue: rabbitmq/rabbitmq-server#2132
-
Improved error handling in a module that continuously registers the node with epmd avoids
log noise.GitHub issue: rabbitmq/rabbitmq-server#2130
CLI Tools
Enhancements
-
rabbitmq-diagnostics consume_event_streamis a new command that makes it easier to consume a stream
of internal commands. This can be useful for troubleshooting and auditing. Previously this was only
possible via the rabbitmq-event-exchange plugin.GitHub issue: rabbitmq/rabbitmq-cli#299
-
rabbitmq-diagnostics check_certificate_expirationis a new health check command
that fails when any of the certificates used by target node expire within a specified time window.rabbitmq-diagnostics certificatesis its diagnostics (informative) counterpart that displays all CA and leaf certificates
used by target node.GitHub issue: rabbitmq/rabbitmq-cli#305
Management Plugin
Bug Fixes
-
Some metrics were omitted in the UI for queues that did not have
x-queue-typeset.GitHub issue: rabbitmq/rabbitmq-management#741
STOMP Plugin
Enhancements
-
The
x-queue-typeheader is now accepted from STOMP clients.GitHub issue: rabbitmq/rabbitmq-stomp#138
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.8.1.tar.xz.
RabbitMQ 3.7.20-beta.1
RabbitMQ 3.7.20-beta.1
RabbitMQ 3.7.20-beta.1 is a preview of a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
Rolling cluster upgrade could fail if new versions were deployed to all cluster nodes at once instead
of a rolling upgrade-then-restart for each node individually.GitHub issue: rabbitmq/rabbitmq-server#2132
-
Improved error handling in a module that continuously registers the node with epmd avoids
log noise.GitHub issue: rabbitmq/rabbitmq-server#2130
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.20.tar.xz.
RabbitMQ 3.7.19
RabbitMQ 3.7.19
RabbitMQ 3.7.19 is a maintenance release that focuses on bug fixes.
RabbitMQ 3.7.x series is supported through March 2020.
Erlang/OTP Compatibility Notes
Per the new Erlang version support policy in effect starting with January 2019,
this release no longer supports Erlang/OTP 20.3.
Make sure a supported Erlang version is used before upgrading.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See 3.7.0 release notes upgrade
and compatibility notes first if upgrading from an earlier release.
See the Upgrading guide for general documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Bug Fixes
-
rabbit_diagnostics:binary_refs/1, a predecessor to Recon used for binary heap inspection,
could fail with an exception due to a race condition.Contributed by John Eckersberg (@jeckersb).
GitHub issue: rabbitmq/rabbitmq-server#2117
-
It was not possible to set
ERL_MAX_PORTSinrabbitmq-env-conf.bat.GitHub issue: rabbitmq/rabbitmq-server#2084
Management Plugin
Bug Fixes
-
Import of large definition files submitted via management UI form could fail.
GitHub issue: rabbitmq/rabbitmq-management#739
CLI Tools
Bug Fixes
-
rabbitmq-diagnostics node_health_checkwould pass even when some cluster nodes had
network partitions in effect.Contributed by Lajos Gerecs (@luos).
GitHub issue: rabbitmq/rabbitmq-server#2127
-
rabbitmqctl set_parameteroutput could be misleading.Contributed by @Whitespirit0.
GitHub issue: rabbitmq/rabbitmq-cli#376
STOMP Plugin
Bug Fixes
-
Cleanup of a subscription after a server-initiated consumer cancelation
failed with an exception.GitHub issue: rabbitmq/rabbitmq-stomp#136
Event Exchange Plugin
Bug Fixes
-
Events could fail to be emitted in multi-node clusters.
GitHub issue: rabbitmq/rabbitmq-event-exchange#41
Management Exchange Plugin
Bug Fixes
-
The plugin was not updated to correctly fetch a list of TCP and TLS listeners used
by the management plugin.GitHub issue: rabbitmq/rabbitmq-management-exchange#8
Source code archives
Warning: The source code archive provided by GitHub only contains the source of the broker,
not the plugins or the client libraries. Please download the archive named rabbitmq-server-3.7.19.tar.xz.
RabbitMQ 3.8.0
RabbitMQ 3.8.0
RabbitMQ 3.8.0 is a feature release. It contains several major improvements in areas of
data safety, replication, observability, and ease of upgrades. Some highlight features are
- Quorum Queues
- Built-in Prometheus support with a set of Grafana dashboards to complement it
- Feature Flags
- Single Active Consumer
- New authentication and authorisation backend that uses OAuth 2.0 (JWT) tokens and scopes
A recorded webinar, What's New in RabbitMQ 3.8, covers some of the highlights in this release.
Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
Ra.
Erlang/OTP Compatibility Notes
This release requires Erlang 21.3 or later.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Rolling Upgrades to 3.8
RabbitMQ 3.8.0 nodes can run alongside 3.7.18 or later 3.7.x nodes.
No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
to simplify rolling upgrades and not meant to be running for long periods of time.
See the Upgrading guide for documentation on upgrades.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See the Upgrading guide for documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.7.x will be compatible with 3.8.0.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Enhancements
-
Quorum Queues built on top of the Raft consensus algorithm for data safety,
more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication. -
Feature Flags allow for mixed-version clusters and safer rolling upgrades.
-
Single Active Consumer makes it possible
to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries. -
New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.
GitHub issue: rabbitmq/rabbitmq-server#1904
-
New metrics: connection and channel churn.
GitHub issue: rabbitmq/rabbitmq-server#1723
-
Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
poison message redeliveries.GitHub issue: rabbitmq/rabbitmq-server#502
-
New queue overflow behaviour:
reject-publish-dlx. It is identical toreject-publish
but also dead letters rejected messages.GitHub issue: rabbitmq/rabbitmq-server#1443
-
Default bindings are now explicit instead of being rows in the internal data store. That means
that high queue churn results in significantly less binding churn, reducing lock contention on
schema database tables, and peak schema operation latencies with it.GitHub issue: rabbitmq/rabbitmq-server#1721
Internal API Changes
-
amqqueueis a new public API module
that should be used to access queue state instead of using queue state records directly. This allows the record
to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state. -
authnandauthzfunctions now have access to additional (e.g. protocol-specific) context information.GitHub issue: rabbitmq/rabbitmq-server#1767
-
Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
in a way that makes it possible to negatively confirm duplicates back to the publisher.Contributed by Matteo Cafasso.
GitHub issue: rabbitmq/rabbitmq-server#1774.
Usability
-
New style configuration format is now more forgiving: it will ignore lines that only contain
whitespace and tab characters, as well as leading and trailing whitespace.GitHub issue: rabbitmq/rabbitmq-server#2072
-
Maximum message size is now configurable. The default was reduced to 128 MiB.e
GitHub issue: rabbitmq/rabbitmq-server#1812
Bug Fixes
Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains community contributions and most important issues that were not backported to 3.7.x releases.
-
Queue index consistency and safety improvements.
Contributed by @tomyouyou.
GitHub issues: rabbitmq/rabbitmq-server#2092, rabbitmq/rabbitmq-server#2096, rabbitmq/rabbitmq-server#2100.
CLI Tools
Enhancements
-
More user-friendly
rabbitmq-diagnostics statusoutput.GitHub issue: rabbitmq/rabbitmq-cli#340
-
New
helpcommand.GitHub issue: rabbitmq/rabbitmq-cli#316
-
A new set of fine-grained health check commands.
GitHub issue: rabbitmq/rabbitmq-cli#292
-
New tool,
rabbitmq-queues, with commands that display Raft state metrics and manage nodes that
host quorum queue replicas.GitHub issues: rabbitmq/rabbitmq-cli#287, rabbitmq/rabbitmq-cli#286
-
Feature flag status reporting.
GitHub issue: rabbitmq/rabbitmq-cli#346
Usability
-
rabbitmq-diagnostics cipher_suitesnow uses OpenSSL cipher suite format by default.GitHub issue: rabbitmq/rabbitmq-cli#267
Management Plugin
Enhancements
-
Metric collection and visualisation in management UI now can be disabled in favor of built-in
Prometheus support and Grafana dashboard from Team RabbitMQ.GitHub issue: rabbitmq/rabbitmq-management#707
-
Feature flag management interface.
-
Quorum Queue support.
-
Single Active Consumer support.
GitHub issue: rabbitmq/rabbitmq-management#650
-
Support for more TLS options.
GitHub issue: rabbitmq/rabbitmq-management#644
-
OAuth 2.0 Single Sign On support for UAA
GitHub issue: rabbitmq/rabbitmq-management#722
-
Username and password-based Basic HTTP Auth authentication for API operations now can be disabled
in favor of OAuth 2.0 Single Sign On via UAA.GitHub issue: rabbitmq/rabbitmq-management#724
Shovel Plugin
Bug Fixes
Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains most prominent fixes.
-
Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
at the cost of making troubleshooting authentication failures harder.GitHub issue: rabbitmq-erlang-client#123
Federation Plugin
...
RabbitMQ 3.8.0-rc.3
RabbitMQ 3.8.0-rc.3
RabbitMQ 3.8.0-rc.3 is a preview of a feature release. It contains several major improvements in areas of
data safety, replication, observability, and ease of upgrades. Some highlight features are
- Quorum Queues
- Built-in Prometheus support with a set of Grafana dashboards to complement it
- Feature Flags
- Single Active Consumer
- New authentication and authorisation backend that uses OAuth 2.0 (JWT) tokens and scopes
For an overview of new features in webinary form, take a look at What's New in RabbitMQ 3.8.
Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
Ra.
Erlang/OTP Compatibility Notes
This release requires Erlang 21.3 or later.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Rolling Upgrades to 3.8
RabbitMQ 3.8.0 nodes can run alongside 3.7.17 or later 3.7.x nodes.
No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
to simplify rolling upgrades and not meant to be running for long periods of time.
See the Upgrading guide for documentation on upgrades.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See the Upgrading guide for documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.7.x will be compatible with 3.8.0.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Enhancements
-
Quorum Queues built on top of the Raft consensus algorithm for data safety,
more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication. -
Feature Flags allow for mixed-version clusters and safer rolling upgrades.
-
Single Active Consumer makes it possible
to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries. -
New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.
GitHub issue: rabbitmq/rabbitmq-server#1904
-
New metrics: connection and channel churn.
GitHub issue: rabbitmq/rabbitmq-server#1723
-
Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
poison message redeliveries.GitHub issue: rabbitmq/rabbitmq-server#502
-
New queue overflow behaviour:
reject-publish-dlx. It is identical toreject-publish
but also dead letters rejected messages.GitHub issue: rabbitmq/rabbitmq-server#1443
-
Default bindings are now explicit instead of being rows in the internal data store. That means
that high queue churn results in significantly less binding churn, reducing lock contention on
schema database tables, and peak schema operation latencies with it.GitHub issue: rabbitmq/rabbitmq-server#1721
Internal API Changes
-
amqqueueis a new public API module
that should be used to access queue state instead of using queue state records directly. This allows the record
to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state. -
authnandauthzfunctions now have access to additional (e.g. protocol-specific) context information.GitHub issue: rabbitmq/rabbitmq-server#1767
-
Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
in a way that makes it possible to negatively confirm duplicates back to the publisher.Contributed by Matteo Cafasso.
GitHub issue: rabbitmq/rabbitmq-server#1774.
Usability
-
New style configuration format is now more forgiving: it will ignore lines that only contain
whitespace and tab characters, as well as leading and trailing whitespace.GitHub issue: rabbitmq/rabbitmq-server#2072
-
Maximum message size is now configurable. The default was reduced to 128 MiB.e
GitHub issue: rabbitmq/rabbitmq-server#1812
Bug Fixes
Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains community contributions and most important issues that were not backported to 3.7.x
prior to the 3.8.0-rc.1 release.
-
Queue index consistency and safety improvements.
Contributed by @tomyouyou.
GitHub issues: rabbitmq/rabbitmq-server#2092, rabbitmq/rabbitmq-server#2096, rabbitmq/rabbitmq-server#2100.
CLI Tools
Enhancements
-
More user-friendly
rabbitmq-diagnostics statusoutput.GitHub issue: rabbitmq/rabbitmq-cli#340
-
New
helpcommand.GitHub issue: rabbitmq/rabbitmq-cli#316
-
A new set of fine-grained health check commands.
GitHub issue: rabbitmq/rabbitmq-cli#292
-
New tool,
rabbitmq-queues, with commands that display Raft state metrics and manage nodes that
host quorum queue replicas.GitHub issues: rabbitmq/rabbitmq-cli#287, rabbitmq/rabbitmq-cli#286
-
Feature flag status reporting.
GitHub issue: rabbitmq/rabbitmq-cli#346
Usability
-
rabbitmq-diagnostics cipher_suitesnow uses OpenSSL cipher suite format by default.GitHub issue: rabbitmq/rabbitmq-cli#267
Management Plugin
Enhancements
-
Metric collection and visualisation in management UI now can be disabled in favor of built-in
Prometheus support and Grafana dashboard from Team RabbitMQ.GitHub issue: rabbitmq/rabbitmq-management#707
-
Feature flag management interface.
-
Quorum Queue support.
-
Single Active Consumer support.
GitHub issue: rabbitmq/rabbitmq-management#650
-
Support for more TLS options.
GitHub issue: rabbitmq/rabbitmq-management#644
-
OAuth 2.0 Single Sign On support for UAA
GitHub issue: rabbitmq/rabbitmq-management#722
-
Username and password-based Basic HTTP Auth authentication for API operations now can be disabled
in favor of OAuth 2.0 Single Sign On via UAA.GitHub issue: rabbitmq/rabbitmq-management#724
Shovel Plugin
Bug Fixes
Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains most prominent fixes.
-
Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
at the cost of making troubleshooting authentication failures harder.GitHub issue: [rabbitmq-erlang-client#123](https://github.com/rabbitmq/rabbitmq-erlang-...
RabbitMQ 3.8.0-rc.2
RabbitMQ 3.8.0-rc.2
RabbitMQ 3.8.0-rc.2 is a preview of a feature release. It contains several major improvements in areas of
data safety, replication, observability, and ease of upgrades. Some highlight features are
- Quorum Queues
- Built-in Prometheus support with a set of Grafana dashboards to complement it
- Feature Flags
- Single Active Consumer
- New authentication and authorisation backend that uses OAuth 2.0 (JWT) tokens and scopes
For an overview of new features in webinary form, take a look at What's New in RabbitMQ 3.8.
Several features in this release are backed by a new Raft implementation for Erlang and Elixir,
Ra.
Erlang/OTP Compatibility Notes
This release requires Erlang 21.3 or later.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision latest patch versions of Erlang 21.3.x and 22.x.
Rolling Upgrades to 3.8
RabbitMQ 3.8.0 nodes can run alongside 3.7.17 or later 3.7.x nodes.
No 3.8.0-specific features would be available in a mixed version cluster. Mixed versions are meant
to simplify rolling upgrades and not meant to be running for long periods of time.
See the Upgrading guide for documentation on upgrades.
Compatibility Notes
Upgrading to Erlang 21.x or Later Versions
When upgrading to this release and upgrading Erlang to 21.x or later at the same time, extra care has to be taken.
Since CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later,
RabbitMQ must be upgraded before Erlang.
Upgrade Doc Guides and Change Log
See the Upgrading guide for documentation on upgrades
and RabbitMQ change log for release notes of other releases.
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.7.x will be compatible with 3.8.0.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the
RabbitMQ mailing list.
Changes
Core Server
Enhancements
-
Quorum Queues built on top of the Raft consensus algorithm for data safety,
more predictable failure recovery, more efficient synchronisation of new and recovered followers, and parallel replication. -
Feature Flags allow for mixed-version clusters and safer rolling upgrades.
-
Single Active Consumer makes it possible
to run a set of consumers for redundancy while ensuring that only one consumer is getting deliveries. -
New metric: dropped unroutable messages. Spotting faulty publishers and routing topology issues is now easier.
GitHub issue: rabbitmq/rabbitmq-server#1904
-
New metrics: connection and channel churn.
GitHub issue: rabbitmq/rabbitmq-server#1723
-
Quorum queues support redelivery tracking, which can be used by consumers to protect themselves from
poison message redeliveries.GitHub issue: rabbitmq/rabbitmq-server#502
-
New queue overflow behaviour:
reject-publish-dlx. It is identical toreject-publish
but also dead letters rejected messages.GitHub issue: rabbitmq/rabbitmq-server#1443
-
Default bindings are now explicit instead of being rows in the internal data store. That means
that high queue churn results in significantly less binding churn, reducing lock contention on
schema database tables, and peak schema operation latencies with it.GitHub issue: rabbitmq/rabbitmq-server#1721
Internal API Changes
-
amqqueueis a new public API module
that should be used to access queue state instead of using queue state records directly. This allows the record
to evolve a lot more rapidly with fewer or no code changes in the plugins that access queue state. -
authnandauthzfunctions now have access to additional (e.g. protocol-specific) context information.GitHub issue: rabbitmq/rabbitmq-server#1767
-
Backing queue interface now exposes a function for message deduplication. Plugins now can track duplicate messages
in a way that makes it possible to negatively confirm duplicates back to the publisher.Contributed by Matteo Cafasso.
GitHub issue: rabbitmq/rabbitmq-server#1774.
Usability
-
New style configuration format is now more forgiving: it will ignore lines that only contain
whitespace and tab characters, as well as leading and trailing whitespace.GitHub issue: rabbitmq/rabbitmq-server#2072
-
Maximum message size is now configurable. The default was reduced to 128 MiB.e
GitHub issue: rabbitmq/rabbitmq-server#1812
Bug Fixes
Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains community contributions and most important issues that were not backported to 3.7.x
prior to the 3.8.0-rc.1 release.
-
Queue index consistency and safety improvements.
Contributed by @tomyouyou.
GitHub issues: rabbitmq/rabbitmq-server#2092, rabbitmq/rabbitmq-server#2096, rabbitmq/rabbitmq-server#2100.
CLI Tools
Enhancements
-
More user-friendly
rabbitmq-diagnostics statusoutput.GitHub issue: rabbitmq/rabbitmq-cli#340
-
New
helpcommand.GitHub issue: rabbitmq/rabbitmq-cli#316
-
A new set of fine-grained health check commands.
GitHub issue: rabbitmq/rabbitmq-cli#292
-
New tool,
rabbitmq-queues, with commands that display Raft state metrics and manage nodes that
host quorum queue replicas.GitHub issues: rabbitmq/rabbitmq-cli#287, rabbitmq/rabbitmq-cli#286
-
Feature flag status reporting.
GitHub issue: rabbitmq/rabbitmq-cli#346
Usability
-
rabbitmq-diagnostics cipher_suitesnow uses OpenSSL cipher suite format by default.GitHub issue: rabbitmq/rabbitmq-cli#267
Management Plugin
Enhancements
-
Metric collection and visualisation in management UI now can be disabled in favor of built-in
Prometheus support and Grafana dashboard from Team RabbitMQ.GitHub issue: rabbitmq/rabbitmq-management#707
-
Feature flag management interface.
-
Quorum Queue support.
-
Single Active Consumer support.
GitHub issue: rabbitmq/rabbitmq-management#650
-
Support for more TLS options.
GitHub issue: rabbitmq/rabbitmq-management#644
-
OAuth 2.0 Single Sign On support for UAA
GitHub issue: rabbitmq/rabbitmq-management#722
-
Username and password-based Basic HTTP Auth authentication for API operations now can be disabled
in favor of OAuth 2.0 Single Sign On via UAA.GitHub issue: rabbitmq/rabbitmq-management#724
Shovel Plugin
Bug Fixes
Most bug fixes in this release previously shipped in 3.7.x release series.
The list below contains most prominent fixes.
-
Sensitive values in Shovel connection state (namely, the connection credentials) are now stored in
encrypted form. This avoids unintentional credential logging by the runtime (exception logger)
at the cost of making troubleshooting authentication failures harder.GitHub issue: rabbitmq-erlang-client#123