Releases: rabbitmq/rabbitmq-server
RabbitMQ 3.8.22
RabbitMQ 3.8.22 is a maintenance release.
All users are recommended to upgrade to this release.
Obtaining Packages
RabbitMQ releases are distributed via GitHub, Cloudsmith,
and PackageCloud.
Erlang/OTP Compatibility Notes
This release requires Erlang 23.2 and supports Erlang 24.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision modern Erlang versions.
Upgrade and Compatibility Notes
See the Upgrading guide for general documentation on upgrades and
RabbitMQ change log for release notes of other releases.
If upgrading from a3.7.x release, see 3.8.0 release notes
upgrade and compatibility notes first.
If upgrading from a 3.6.x or older release series, first upgrade
to 3.7.27 and then to this version.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list
and RabbitMQ community Slack.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
Core Server
Bug Fixes
-
Virtual host metadata (description, tags) was not imported from definitions.
GitHub issue: #3333
AWS Peer Discovery Plugin
Enhancements
-
AWS API calls are now retried multiple times.
Contributed by AWS.
GitHub issue: #3329
Management Plugin
Enhancements
-
PUT /api/vhosts/{name}now can update metadata (tags and descriptions) for existing
virtual hosts.GitHub issue: #3319
Dependency Upgrades
No dependency changes in this release.
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.8.22.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.9.5
RabbitMQ 3.9.5 is a maintenance release in the 3.9.x release series.
Please refer to the Upgrading to 3.9 section from v3.9.0 release notes if upgrading from a version prior to 3.9.0.
This release requires at least Erlang 23.2, and supports the latest Erlang 24 version, 24.0.5 at the time of release. RabbitMQ and Erlang/OTP Compatibility Matrix has more details on Erlang version requirements for RabbitMQ.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
Core Server
Bug Fixes
-
Virtual host metadata (description, tags) was not imported from definitions.
GitHub issue: #3333
-
Reduced unnecessary debug logging from streams.
GitHub issue: #3279
AWS Peer Discovery Plugin
Enhancements
-
AWS API calls are now retried multiple times.
Contributed by AWS.
GitHub issue: #3329
Management Plugin
Enhancements
-
PUT /api/vhosts/{name}now can update metadata (tags and descriptions) for existing
virtual hosts.GitHub issue: #3319
Dependency Upgrades
No dependency changes in this release.
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.9.5.tar.xz instead of the source tarball produced by GitHub.
RabbitMQ 3.9.4
RabbitMQ 3.9.4 is a maintenance release in the 3.9.x release series.
Please refer to the Upgrading to 3.9 section from v3.9.0 release notes if upgrading from a version prior to 3.9.0.
This release requires at least Erlang 23.2, and supports the latest Erlang 24 version, 24.0.5 at the time of release. RabbitMQ and Erlang/OTP Compatibility Matrix has more details on Erlang version requirements for RabbitMQ.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
Core Server
Enhancements
-
Nodes will now use four more environment variables, if set:
RABBITMQ_DEFAULT_USER(overridesdefault_userinrabbitmq.conf),RABBITMQ_DEFAULT_PASS(overridesdefault_pass),RABBITMQ_DEFAULT_VHOST(overridesdefault_vhost) andRABBITMQ_ERLANG_COOKIE(sets shared authentication secret value).
These variables are not recommended to be used in production but can be the only realistic option in some environment, such as service containers, ECS, and so on.
Most users should continue usingrabbitmq.confand a securely generated local cookie file.GitHub issue: #3299
-
Definitions now can be imported from different sources, including those provided by plugins. Original local filesystem source is still supported in a backwards-compatible way.
The following
rabbitmq.confexample uses a local file as the source:# equivalent to the classic load_definitions configuration key definitions.import_backend = local_filesystem definitions.local.path = /path/to/definitions.json
This
rabbitmq.confexample uses a local directory with definition files:# equivalent to the classic load_definitions configuration key definitions.import_backend = local_filesystem definitions.local.path = /path/to/rabbitmq/definitions.d
In this example config file, definitions are loaded from a URL accessible over HTTPS:
# downloads definitions over HTTPS definitions.import_backend = https definitions.https.url = https://rabbitmq.eng.megacorp.local/env-1/definitions.json # client-side TLS options for definition import definitions.tls.versions.1 = tlsv1.2 definitions.tls.log_level = error
GitHub issue: #3249
Prometheus Plugin
Enhancements
-
New Prometheus metrics for alarms:
rabbitmq_alarms_file_descriptor_limit1|0rabbitmq_alarms_free_disk_space_watermark1|0rabbitmq_alarms_memory_used_watermark1|0
While some of the alarms have cluster-wide effect, these metrics are node-local.
GitHub issue: #2653
Dependency Upgrades
No dependency changes in this release.
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.9.4.tar.xz instead of the source tarball produced by GitHub.
RabbitMQ 3.9.3
RabbitMQ 3.9.3 is a maintenance release in the 3.9.x release series that addresses a regression introduced in 3.9.0.
All users are recommended to upgrade to this release.
This is what changed since v3.9.2.
Please refer to the Upgrading to 3.9 section from v3.9.0 release notes if you are upgrading from a version prior to 3.9.0.
This release requires at least Erlang 23.2, and supports the latest Erlang 24 version, 24.0.5 at the time of release. RabbitMQ and Erlang/OTP Compatibility Matrix has more details on Erlang version requirements for RabbitMQ.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes. Contributors are encouraged to update them together with their changes. This helps with release automation and more consistent release schedule.
Core Server
Bug Fixes
-
Queues that had messages with per-message TTL in them could fail to recover their indices after a restart.
-
JSON logging could fail with an exception when a logged event included epoch-based timestamp value.
GitHub issue: #3281
-
JSON logging now uses integers (as opposed to floats) to represent epoch-based timestamps
GitHub issue: #3282
Enhancements
-
RabbitMQ application no longer reports the
stoppingevent to systemd. This was counterproductive when the application was stopped but the runtime (Erlang VM) was kept running, e.g. viarabbitmqctl stop_appor by the pause minority partition handling strategy. Now systemd service monitoring will recognise a node as stopped only when the runtime is stopped, which is usually the behaviour operators expect.
Dependency Upgrades
No dependency changes in this release.
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.9.3.tar.xz instead of the source tarball produced by GitHub.
RabbitMQ 3.8.21
RabbitMQ 3.8.21
RabbitMQ 3.8.21 is a maintenance release that addresses a regression introduced in 3.8.17.
All users are recommended to upgrade to this release.
Obtaining Packages
RabbitMQ releases are distributed via GitHub, Cloudsmith,
and PackageCloud.
Erlang/OTP Compatibility Notes
This release requires Erlang 23.2 and supports Erlang 24.
Provisioning Latest Erlang Releases explains
what package repositories and tools can be used to provision modern Erlang versions.
Upgrade and Compatibility Notes
See the Upgrading guide for general documentation on upgrades and
RabbitMQ change log for release notes of other releases.
If upgrading from a3.7.x release, see 3.8.0 release notes
upgrade and compatibility notes first.
If upgrading from a 3.6.x or older release series, first upgrade
to 3.7.27 and then to this version.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list
and RabbitMQ community Slack.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
Core Server
Bug Fixes
-
Queues that had messages with per-message TTL in them could fail to recover their indices
after a restart.
Dependency Upgrades
No dependency changes in this release.
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.8.21.tar.xz
instead of the source tarball produced by GitHub.
RabbitMQ 3.9.2
RabbitMQ 3.9.2 is a maintenance release in the 3.9.x release series. This is what changed since v3.9.1.
Please refer to the Upgrading to 3.9 section from v3.9.0 release notes if you are upgrading from a version prior to 3.9.0.
This release requires at least Erlang 23.2, and supports the latest Erlang 24 version, 24.0.5 at the time of release. RabbitMQ and Erlang/OTP Compatibility Matrix has more details on Erlang version requirements for RabbitMQ.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
CLI Tools
Bug Fixes
-
rabbitmq-upgrade drainandrabbitmq-upgrade revivenow logwarningandinfolevel instead ofalert.GitHub issue: #3266
Shovel Plugin
Bug Fixes
-
Multiple Shovels could be started in some cases involving node restarts of failures.
GitHub issue: #3260
Federation Plugin
Bug Fixes
-
Multiple Federation links could be started in some cases involving node restarts of failures.
GitHub issue: #3260
Dependency Upgrades
- Osiris has been updated to 1.1.0
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.9.2.tar.xz instead of the source tarball produced by GitHub.
RabbitMQ 3.8.20
RabbitMQ 3.8.20 is a maintenance release in the 3.8.x release series. This is what changed since v3.8.19.
Obtaining Packages
RabbitMQ releases are distributed via GitHub, Cloudsmith, and PackageCloud.
Erlang/OTP Compatibility Notes
This release requires Erlang 23.2 and supports Erlang 24.
Provisioning Latest Erlang Releases explains what package repositories and tools can be used to provision modern Erlang versions.
Upgrade and Compatibility Notes
See the Upgrading guide for general documentation on upgrades and RabbitMQ change log for release notes of other releases.
If upgrading from a3.7.x release, see 3.8.0 release notes upgrade and compatibility notes first.
If upgrading from a 3.6.x or older release series, first upgrade to 3.7.27 and then to this version.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list and RabbitMQ community Slack.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes. Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
Core Server
Enhancements
-
Nodes failed to start when hostname contained non-ASCII (broader Unicode) characters.
GitHub issue: #3239
CLI Tools
Bug Fixes
-
rabbitmq-upgrade drainandrabbitmq-upgrade revivenow logwarningandinfolevel instead ofalert.GitHub issue: #3266
Management Plugin
Bug Fixes
-
HTTP API now includes
WWW-Authenticateheader into 401 responses to requests that contain invalid credentialsGitHub issue: #3181
-
Queue name is now validated for length according to the AMQP 0-9-1 spec.
GitHub issue: #3202
Shovel Plugin
Bug Fixes
-
Multiple Shovels could be started in some cases involving node restart failures.
GitHub issue: #3263
Federation Plugin
Bug Fixes
-
Multiple Federation links could be started in some cases involving node restart failures.
GitHub issue: #3263
RabbitMQ Erlang Client
Bug Fixes
-
New releases of the client are again published to Hex.pm.
GitHub issue: #3247
-
connection_timeoutwas adjusted to avoid a confusing warning. -
Corrected a typo in direct connection net tick time adjustment.
Dependency Upgrades
No dependency changes in this release.
Source Code Archives
To obtain source code of the entire distribution, please download the archive named rabbitmq-server-3.8.20.tar.xz instead of the source tarball produced by GitHub.
RabbitMQ 3.9.1
RabbitMQ 3.9.1 is a maintenance release in the 3.9.x release series. This is what changed since v3.9.0.
Please refer to the Upgrading to 3.9 section from v3.9.0 release notes if you are upgrading from a version prior to 3.9.0.
This release requires at least Erlang 23.2, and supports the latest Erlang 24 version, 24.0.5 at the time of release. RabbitMQ and Erlang/OTP Compatibility Matrix has more details on Erlang version requirements for RabbitMQ.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
Core Server
Bug Fixes
-
Clients that used global QoS prefetch (deprecated as of 3.9.0) ran into an exception when acknowledging deliveries.
GitHub issue: #3230
-
Improved resiliency of stream coordinator in certain conditions.
-
Nodes failed to start when hostname contained non-ASCII (broader Unicode) characters.
GitHub issue: #3239
CLI Tools
Bug Fixes
-
rabbitmq-diagnostics stream_statusfailed with an exception when the--trackingoption was used.GitHub issue: #3229
-
rabbitmq-diagnostics stream_statusused an outdated documentation guide link.GitHub issue: #3231
RabbitMQ Erlang Client
Bug Fixes
RabbitMQ 3.9.0
The most important changes are Streams, support for Erlang 24, and improved integration with our RabbitMQ Kubernetes Operator. Other changes worth mentioning are JSON logging, per-protocol and queue type message rates as Prometheus metrics and faster initial cluster formation on Kubernetes.
Find blog posts that expand on the previously mentioned topics: https://blog.rabbitmq.com/tags/v3.9.x/
Highlights
Streams
Streams are a new persistent and replicated data structure ("queue type") in RabbitMQ which models an append-only log with non-destructive consumer semantics.
They can be used as a regular AMQP 0.9.1 queue or through a new binary protocol plugin and associated client(s).
Streams enable messaging patterns that were not possible or practical before, for example, repeatable non-destructive consumption and mass fanouts to a very large number of consumers.
Erlang 24 Support
Erlang 24 provides 20%-50% higher throughput for many workloads tested by the RabbitMQ core team and community members. Supporting the latest runtime version also allowed RabbitMQ to replace a few external dependencies with libraries now provided by the runtime.
Erlang 24 is now used by default in the community RabbitMQ Docker image.
Kubernetes
RabbitMQ Cluster Operator automates provisioning, management, and operations of RabbitMQ clusters running on Kubernetes. It is open source and is developed by the RabbitMQ Core team at VMware, Inc. This Operator is not specific to 3.9 and can be used with latest 3.8.x release series.
Messaging Topology Operator makes it possible to define RabbitMQ resources (virtual hosts, users, permissions, topologies, policies, etc) as Kubernetes objects. This Operator is also open source and can be used with latest 3.8.x release series.
Logging in JSON
Switch from Lager to the new Erlang Logger API for logging introduces an option for structured logging in JSON. This is relevant for the Prometheus-based alerting feature that we have been investing in this year: Notify me when RabbitMQ has a problem.
Obtaining Packages
RabbitMQ releases are distributed via GitHub, Cloudsmith, and PackageCloud.
Erlang/OTP Compatibility Notes
This release requires Erlang 23.2 or later. Erlang 24 is recommended as it offers 20%-50% throughput improvements for many workloads.
Provisioning Latest Erlang Releases explains what package repositories and tools can be used to provision latest patch versions of Erlang 23.3.x and 24.x.
Upgrading to 3.9
See the Upgrading guide for documentation on upgrades and RabbitMQ change log for release notes of other releases.
RabbitMQ 3.9.0 nodes can run alongside 3.8.x nodes. However, 3.8.16+ as well as 3.9.x both require Erlang 23.2 or later (and support 24). 3.9.x-specific features can only be made available when all nodes in the cluster upgrade to 3.9.0 or any other patch release in the series.
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below. Once all nodes are upgraded to 3.9.0, these irregularities will go away.
Mixed version clusters are a mechanism that allows rolling upgrade and are not meant to be run for extended periods of time (no more than a few hours).
Quorum Queue Declaration
In a mixed version cluster, declaration of new quorum queues will fail if executed on a node in the version minority. For example, in a five node cluster with two nodes running 3.8, the three 3.9 nodes are in the version majority and the remaining are in the version minority.
Existing quorum queues will operate just like before.
Classic Queue Metrics
HTTP API responses will provide a limited number of metrics or metrics for a limited number of queues (for operations such as GET /api/queues/{vhost}) when operating in mixed version mode.
Compatibility Notes
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.8.x will be compatible with 3.9.0.
Upgrading to Erlang 24.x
RabbitMQ 3.8.16 and later require Erlang 23.2 and support Erlang 24 (recommended). Users of RabbitMQ versions that do not support Erlang 23.2 should first upgrade to the latest 3.8.x patch release on Erlang 23.2, then upgrade to 3.9.0, and ideally Erlang 24.
Management API
User tags are now exported as a list, not as a comma-separated list anymore. HTTP API client libraries need some updating to support both types. RabbitMQ 3.9 can import definitions in both formats.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes Worth Mentioning
Release notes are kept under rabbitmq-server/release-notes.
Contributors are encouraged to update them together with their changes. This helps with release automation and more
consistent release schedule.
Core Server
Enhancements
-
Streams, a new durable replicated data structure that allows for repeatable (non-destructive) consumption. RabbitMQ 3.9 introduces a new binary protocol for working with streams. While streams can be used by AMQP 0-9-1 clients, in most cases it will be used via a RabbitMQ stream binary protocol client. The new protocol exposes all the operations specific to this queue type and is heavily optimized for them, resulting in much higher read and write throughput.
-
Structural logging in JSON. Nodes can now log in JSON format.
GitHub issue: #2861
-
Peer discovery no longer uses randomized startup delay to ensure only one node starts as a seed one during initial (parallel) cluster formation. Instead it relies on an internal runtime locking library.
GitHub issue: #3075
-
Binding recovery on node startup is now more efficient. This means in clusters with a lot of queues and/or bindings, nodes start quicker.
GitHub issue: #3137
-
Classic mirrored queue replcas are now started synchronously.
GitHub issue: #2751
-
journaldnotifications are now performed using a library and not an external tool (socat)GitHub issue: #2940
-
Startup banner now provides more information some of which can be customised.
-
Per-protocol and queue type message rates are now available as Prometheus metrics, as well as Streams-specific errors. This also addresses a long-standing 3.8.x counters issue for most metrics of this type, as captured in #2783.
Internal API and Other Changes
-
Standard runtime logger is now used for logging instead of Lager, a 3rd party dependency. In modern Erlang versions, the module offers at least a comparable feature set and efficiency of Lager.
Users who relied on Lager-specific configuration, e.g. custom extensions or sinks, would have to rebuild them on top of the standard Erlang
loggermodule.GitHub issue: #2861
-
Different Raft-based features now can have different defaults and settings, with more configurability coming at a later point. For example, client ID tracking in the MQTT plugin can use settings for lower memory footprint and more frequent compaction while stream and quorum queues use settings more optimal for higher throughput on the same node.
RabbitMQ 3.9.0-rc.2
RabbitMQ 3.9.0-rc.2
RabbitMQ 3.9.0-rc.2 is a candidate of a minor (feature) release. It contains new features, support for Erlang 24, improved integration with our RabbitMQ Kubernetes Operator, and important internal changes in a number of subsystems.
Highlights
Streams
Streams are a new persistent and replicated data structure ("queue type") in RabbitMQ which models an append-only log with non-destructive consumer semantics.
They can be used as a regular AMQP 0.9.1 queue or through a new binary protocol plugin and associated client(s).
Streams enable messaging patterns that were not possible or practical before, for example, repeatable non-destructive consumption and mass fanouts to a very large number of consumers.
Erlang 24 Support
Erlang 24 provides 20%-50% higher throughput for many workloads tested by the RabbitMQ core team and community members.
Erlang 24 is now used by default in the RabbitMQ community Docker image.
Supporting the latest runtime version also allowed RabbitMQ to replace a few external dependencies with libraries now provided by the runtime.
Kubernetes
RabbitMQ Cluster Operator automates provisioning, management, and operations of RabbitMQ clusters running on Kubernetes. It is open source and is developed by the RabbitMQ Core team at VMware, Inc.
This Operator is not specific to 3.9 and can be used with latest 3.8.x release series.
Messaging Topology Operator makes it possible to define RabbitMQ resources (virtual hosts, users, permissions, topologies, policies, etc) as Kubernetes objects. This Operator is also open source and can be used with latest 3.8.x release series.
Logging in JSON
Switch from Lager to the new Erlang Logger API for logging #2861 introduces an option for structured logging in JSON.
Obtaining Packages
RabbitMQ releases are distributed via GitHub, Cloudsmith, and PackageCloud.
Erlang/OTP Compatibility Notes
This release requires Erlang 23.2 or later. Erlang 24 is recommended as it offers 20%-50% throughput improvements for many workloads.
Provisioning Latest Erlang Releases explains what package repositories and tools can be used to provision latest patch versions of Erlang 23.3.x and 24.x.
Upgrading to 3.9
See the Upgrading guide for documentation on upgrades and RabbitMQ change log for release notes of other releases.
RabbitMQ 3.9.0 nodes can run alongside 3.8.x nodes. However, 3.8.16+ as well as 3.9.x both require Erlang 23.2 or later (and support 24). 3.9.x-specific features can only be made available when all nodes in the cluster upgrade to 3.9.0 (or a later 3.9.x release).
While operating in mixed version mode, some aspects of the system may not behave as expected. The list of known behavior changes is covered below. Once all nodes are upgraded to 3.9.0, these irregularities will go away.
Mixed version clusters are a mechanism that allows rolling upgrade and are not meant to be run for longer periods of time.
Quorum Queue Declaration
In a mixed version cluster, declaration of new quorum queues will fail if executed on a node in the version minority. For example, in a five node cluster with two nodes running 3.8, the three 3.9 nodes are in the version majority and the remaining are in the version minority.
Existing quorum queues will operate just like before.
Classic Queue Metrics
HTTP API responses will provide a limited number of metrics or metrics for a limited number of queues (for operations such as GET /api/queues/{vhost}) when operating in mixed version mode.
Compatibility Notes
Client Library Compatibility
Client libraries that were compatible with RabbitMQ 3.8.x will be compatible with 3.9.0.
Upgrading to Erlang 24.x
RabbitMQ 3.8.16 and later require Erlang 23.2 and support Erlang 24. 24 is recommended. Users of versions that do not support Erlang 23.2 should first upgrade to the latest 3.8.x patch release pn Erlang 23.2, then upgrade to 3.9.0 on Erlang 24.
Getting Help
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
Changes Worth Mentioning
Core Server
Enhancements
-
Streams, a new durable replicated data structure that allows for repeatable (non-destructive) consumption. RabbitMQ 3.9 introduces a new binary protocol for working with streams. While streams can be used by AMQP 0-9-1 clients, in most cases it will be used via a RabbitMQ stream binary protocol client. The new protocol exposes all the operations specific to this queue type and is heavily optimized for them, resulting in much higher read and write throughput.
-
Structural logging in JSON. Nodes can now log in JSON format.
GitHub issue: #2861
-
Peer discovery no longer uses randomized startup delay to ensure only one node starts as a seed one during initial (parallel) cluster formation. Instead it relies on an internal runtime locking library.
GitHub issue: #3075
-
Binding recovery on node startup is now more efficient. This means in clusters with a lot of queues and/or bindings, nodes start quicker.
GitHub issue: #3137
-
Classic mirrored queue replcas are now started synchronously.
GitHub issue: #2751
-
journaldnotifications are now performed using a library and not an external tool (socat)GitHub issue: #2940
-
Startup banner now provides more information some of which can be customised.
-
Per-protocol and queue type message rates are now available as Prometheus metrics, as well as Streams-specific errors. This also addresses a long-standing 3.8.x counters issue for most metrics of this type, as captured in #2783.
Internal API and Other Changes
-
Standard runtime logger is now used for logging instead of Lager, a 3rd party dependency. In modern Erlang versions, the module offers at least a comparable feature set and efficiency of Lager.
Users who relied on Lager-specific configuration, e.g. custom extensions or sinks, would have to rebuild them on top of the standard Erlang
loggermodule.GitHub issue: #2861
-
Different Raft-based features now can have different defaults and settings, with more configurability coming at a later point. For example, client ID tracking in the MQTT plugin can use settings for lower memory footprint and more frequent compaction while stream and quorum queues use settings more optimal for higher throughput on the same node.
GitHub issue: #2909
-
Continuous integration of open source RabbitMQ has switched to Bazel, GitHub Actions and BuildBuddy, resulting in much faster and incremental test runs.
Bazel support for Erlang is a new project open sourced by the RabbitMQ Core team as a result.
-
Process group membership now uses
pg.GitHub issue: #2850
Bug Fixes
-
powershell.exenow can run without profile.GitHub issue: #2201
-
Queue index recovery now can continue after a forced node shutdown during recovery
(e.g. killed)GitHub issue: #3099
-
Correct an issue where the
num_acceptors.sslconfiguration value was applied
incorrectlyGitHub issue: #3180
Kubernetes
Enhancements
- [RabbitMQ Cluste...