Project: RabbitMQ (App Definition and Development / Streaming & Messaging)
File: 3.8.2.md

RabbitMQ `3.8.2` is a maintenance release. This release or later. `22.x` series is recommended. 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 upgrade and compatibility notes first if upgrading from an earlier release. See the for general documentation on upgrades and for release notes of other releases. Any questions about this release, upgrades or RabbitMQ in general are welcome on the . Raft implementation optimizations. GitHub issues: , Quorum queue optimization: enables local (not going through the leader) delivery from Raft followers when appropriate and safe. GitHub issues: , If `x-queue-type` argument is not provided at queue declaration time, the type is assumed to be `classic` instead of missing. GitHub issue: Quorum queue consumer timeout now can be configured using new style configuration file: ``` ini consumer_timeout = 120000 ``` GitHub issue: 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: Quorum queue consumer count metric could be duplicated when reported via HTTP API or to a Prometheus scraper. GitHub issue: It is now possible to without the use of plugins with `rabbitmqctl exportdefinitions` and `rabbitmqctl importdefinitions`: ``` sh rabbitmqctl export_definitions /path/to/target.file.json rabbitmqctl export_definitions "-" | jq rabbitmqctl export_definitions /path/to/target.file --format=erlang rabbitmqctl help export_definitions ``` ``` sh rabbitmqctl import_definitions /path/to/target.file.json cat /path/to/definitions.json | rabbitmqctl import_definitions "-" rabbitmqctl import_definitions /path/to/target.file --format=erlang rabbitmqctl help import_definitions ``` GitHub issue: Entities with `amq.` prefixes are now skipped during import instead of producing an error. GitHub issue: `rabbitmqctl await_startup` failed with an exception when RabbitMQ application was stopped but the runtime (Erlang VM) was running. GitHub issue: Definition import via HTTP API could fail in if performed via HTTP API (but not management UI) and contained operator policies. GitHub issue: Metric aggregation optimizations. GitHub issue: Throughput improvements ranging from 14 to 60 percent depending on workload. GitHub issue: Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint. GitHub issues: , 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: , Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages. GitHub issue: Throughput improvements. GitHub issue: Throughput improvements. GitHub issue: Clients now can authenticate using an x.509 (TLS) certificate. GitHub issue: A small number of queue metrics were not read from the metric store correctly. GitHub issue: 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`.