release-notes/3.8.2.md
RabbitMQ 3.8.2 is a maintenance release.
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.
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.
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.
Any questions about this release, upgrades or RabbitMQ in general are welcome on the RabbitMQ mailing list.
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 be classic
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
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
It is now possible to export and import definitions without the use of plugins with
rabbitmqctl export_definitions and rabbitmqctl 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
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
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
Metric aggregation optimizations.
GitHub issue: rabbitmq/rabbitmq-management-agent#84
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
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
Throughput improvements.
GitHub issue: rabbitmq/rabbitmq-server#2168
Throughput improvements.
GitHub issue: rabbitmq/rabbitmq-server#2168
Clients now can authenticate using an x.509 (TLS) certificate.
GitHub issue: rabbitmq/rabbitmq-web-stomp#116
A small number of queue metrics were not read from the metric store correctly.
GitHub issue: rabbitmq/rabbitmq-prometheus#19
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.