RabbitMQ 3.8.2
RabbitMQ 3.8.2
RabbitMQ 3.8.2
is a maintenance release.
Erlang/OTP Compatibility Notes
This release requires Erlang/OTP 21.3 or later.
22.x
series is recommended.
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.x.
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
Enhancements
-
Raft implementation optimizations.
GitHub issues: rabbitmq/ra#137, rabbitmq/ra#148
-
Quorum queue optimization: enables local (not going through the leader) delivery from Raft followers
when appropriate and safe.GitHub issues: rabbitmq/rabbitmq-server#2146, rabbitmq/ra#132
-
If
x-queue-type
argument is not provided at queue declaration time, the type is assumed to beclassic
instead of missing.GitHub issue: rabbitmq/rabbitmq-common#341
-
Quorum queue consumer timeout now can be configured using new style configuration file:
# Hard timeout for quorum queue consumer acknowledgemnts of two minutes consumer_timeout = 120000
GitHub issue: rabbitmq/rabbitmq-server#2163
Bug Fixes
-
A quorum queue could produce an empty Raft log segment if node is killed at a particular moment in time,
which would prevent the node from successfully recovering the log after restart.GitHub issues: rabbitmq/ra#138
-
Quorum queue consumer count metric could be duplicated when reported via HTTP API or to a Prometheus scraper.
GitHub issue: rabbitmq/rabbitmq-server#2176
-
Quorum queue with single active consumer enabled crashes after some
basic.get
calls. Quorum queues now forbidbasic.get
when single active consumer is enabled.GitHub issue: rabbitmq/rabbitmq-server#2164
CLI Tools
Enhancements
-
It is now possible to export and import definitions without the use of plugins with
rabbitmqctl export_definitions
andrabbitmqctl import_definitions
:# export as a JSON file rabbitmqctl export_definitions /path/to/target.file.json # export as JSON to standard output and pipe to jq rabbitmqctl export_definitions "-" | jq # export as a compressed Erlang term file rabbitmqctl export_definitions /path/to/target.file --format=erlang # learn more rabbitmqctl help export_definitions
# import from a JSON file rabbitmqctl import_definitions /path/to/target.file.json # import JSON from standard input cat /path/to/definitions.json | rabbitmqctl import_definitions "-" # import from a compressed Erlang term file rabbitmqctl import_definitions /path/to/target.file --format=erlang # learn more rabbitmqctl help import_definitions
GitHub issue: rabbitmq/rabbitmq-management#749
-
Entities with
amq.*
prefixes are now skipped during import instead of producing an error.GitHub issue: rabbitmq/rabbitmq-server#2170
Bug Fixes
-
rabbitmqctl await_startup
failed with an exception when RabbitMQ application was stopped but the
runtime (Erlang VM) was running.GitHub issue: rabbitmq/rabbitmq-server#2158
Management Plugin
Bug Fixes
-
Definition import via HTTP API could fail in if performed via HTTP API (but not management UI)
and contained operator policies.GitHub issue: rabbitmq/rabbitmq-management#751
Enhancements
-
Metric aggregation optimizations.
GitHub issue: rabbitmq/rabbitmq-management-agent#84
MQTT Plugin
Enhancements
-
Throughput improvements ranging from 14 to 60 percent depending on workload.
GitHub issue: rabbitmq/rabbitmq-server#2168
-
Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint.
GitHub issues: rabbitmq/rabbitmq-mqtt#216, rabbitmq/rabbitmq-mqtt#217
Bug Fixes
-
Client ID tracker could produce an empty Raft log segment if node is killed at a particular moment in time,
which would prevent the node from successfully recovering the log after restart.GitHub issues: rabbitmq/discussions#4, rabbitmq/ra#138
-
Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages.
GitHub issue: rabbitmq/rabbitmq-mqtt#214
AMQP 1.0 Plugin
Enhancements
-
Throughput improvements.
GitHub issue: rabbitmq/rabbitmq-server#2168
STOMP Plugin
Enhancements
-
Throughput improvements.
GitHub issue: rabbitmq/rabbitmq-server#2168
Web STOMP Plugin
Enhancements
-
Clients now can authenticate using an x.509 (TLS) certificate.
GitHub issue: rabbitmq/rabbitmq-web-stomp#116
Prometheus Plugin
-
A small number of queue metrics were not read from the metric store correctly.
GitHub issue: rabbitmq/rabbitmq-prometheus#19
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.2.tar.xz
.