157 lines
4.8 KiB
Markdown
157 lines
4.8 KiB
Markdown
|
## RabbitMQ 3.13.0
|
||
|
|
||
|
RabbitMQ `3.12.0` is a new feature release.
|
||
|
|
||
|
## Highlights
|
||
|
|
||
|
This release includes several new features, optimizations, and graduates (makes mandatory) a number of feature flags.
|
||
|
|
||
|
The user-facing areas that have seen the biggest improvements in this release are
|
||
|
|
||
|
* Classic queues use version 2 of the format format. This should significantly improve performance.
|
||
|
|
||
|
This release also features many internal API improvements in preparation to 4.0
|
||
|
with [Khepri](https://www.youtube.com/watch?v=huT-zmXvfuM).
|
||
|
|
||
|
See Compatibility Notes below to learn about breaking or potentially breaking changes in this release.
|
||
|
|
||
|
## Release Artifacts
|
||
|
|
||
|
RabbitMQ releases are distributed via [GitHub](https://github.com/rabbitmq/rabbitmq-server/releases).
|
||
|
[Debian](https://rabbitmq.com/install-debian.html) and [RPM packages](https://rabbitmq.com/install-rpm.html) are available via Cloudsmith mirrors, as well as [PackageCloud](https://packagecloud.io/rabbitmq).
|
||
|
|
||
|
[Community Docker image](https://hub.docker.com/_/rabbitmq/), [Chocolatey package](https://community.chocolatey.org/packages/rabbitmq), and the [Homebrew formula](https://rabbitmq.com/install-homebrew.html)
|
||
|
are other installation options. They are updated with a delay (usually a few days).
|
||
|
|
||
|
|
||
|
## Erlang/OTP Compatibility Notes
|
||
|
|
||
|
This release [requires Erlang 25.0](https://www.rabbitmq.com/which-erlang.html) or later.
|
||
|
This introduces feature parity for x86- and ARM64-based CPUs: Erlang 25 offers the JIT and
|
||
|
[modern Flame Graph profiling](https://blog.rabbitmq.com/posts/2022/05/flame-graphs/) tooling
|
||
|
for both of those major CPU architectures.
|
||
|
|
||
|
[Provisioning Latest Erlang Releases](https://www.rabbitmq.com/which-erlang.html#erlang-repositories) explains
|
||
|
what package repositories and tools can be used to provision latest patch versions of Erlang 25.x.
|
||
|
|
||
|
## Upgrading to 3.13
|
||
|
|
||
|
### Documentation guides on upgrades
|
||
|
|
||
|
See the [Upgrading guide](https://www.rabbitmq.com/upgrade.html) for documentation on upgrades and [RabbitMQ change log](https://www.rabbitmq.com/changelog.html)
|
||
|
for release notes of other releases.
|
||
|
|
||
|
### Required Feature Flags
|
||
|
|
||
|
|
||
|
### Mixed version cluster compatibility
|
||
|
|
||
|
RabbitMQ 3.13.0 nodes can run alongside `3.12.x` nodes. `3.12.x`-specific features can only be made available when all nodes in the cluster
|
||
|
upgrade to 3.13.0 or any other patch release in the new 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.13.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).
|
||
|
|
||
|
|
||
|
|
||
|
## Compatibility Notes
|
||
|
|
||
|
### More Feature Flags Gratuate to Core Features ("Always Enabled")
|
||
|
|
||
|
|
||
|
### Minimum Supported Erlang Version
|
||
|
|
||
|
Starting with this release, RabbitMQ requires Erlang 25.0 or later versions. Nodes **will fail to start**
|
||
|
on older Erlang releases.
|
||
|
|
||
|
Erlang 25 as our new baseline means much improved performance on ARM64 architectures, [profiling with flame graphs](https://blog.rabbitmq.com/posts/2022/05/flame-graphs/)
|
||
|
across all architectures, and the most recent TLS 1.3 implementation available to all RabbitMQ 3.11 users.
|
||
|
|
||
|
|
||
|
### Client Library Compatibility
|
||
|
|
||
|
Client libraries that were compatible with RabbitMQ `3.12.x` will be compatible with `3.13.0`.
|
||
|
|
||
|
|
||
|
### Getting Help
|
||
|
|
||
|
Any questions about this release, upgrades or RabbitMQ in general are welcome on the [RabbitMQ mailing list](https://groups.google.com/forum/#!forum/rabbitmq-users).
|
||
|
|
||
|
|
||
|
## Changes Worth Mentioning
|
||
|
|
||
|
Release notes are kept under [rabbitmq-server/release-notes](https://github.com/rabbitmq/rabbitmq-server/tree/v3.11.x/release-notes).
|
||
|
|
||
|
### Core Server
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
* Reduced memory footprint, improved memory use predictability and throughput of classic queues (version 2, or CQv2).
|
||
|
This particularly benefits classic queues with longer backlogs.
|
||
|
|
||
|
Classic queue v2 (CQv2) storage implementation **is now the default**. It is possible to switch
|
||
|
the default back to CQv1 using `rabbitmq.conf`:
|
||
|
|
||
|
``` ini
|
||
|
# uses CQv1 by default
|
||
|
classic_queue.default_version = 1
|
||
|
```
|
||
|
|
||
|
Individual queues can be declared by passing `x-queue-version` argument and/or through a `queue-version` policy.
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
This release includes all bug fixes shipped in the `3.12.x` series.
|
||
|
|
||
|
|
||
|
|
||
|
### CLI Tools
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
|
||
|
|
||
|
### MQTT Plugin
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
|
||
|
### Management Plugin
|
||
|
|
||
|
#### Enhancements
|
||
|
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
|
||
|
### OAuth 2 AuthN/AuthZ Backend Plugin
|
||
|
|
||
|
#### Enhancement
|
||
|
|
||
|
|
||
|
### HTTPS AuthN/AuthZ Backend Plugin
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
|
||
|
### Consul Peer Discovery Plugin
|
||
|
|
||
|
#### Bug Fixes
|
||
|
|
||
|
|
||
|
|
||
|
### Dependency Changes
|
||
|
|
||
|
|
||
|
|
||
|
## Source Code Archives
|
||
|
|
||
|
To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.13.0.tar.xz`
|
||
|
instead of the source tarball produced by GitHub.
|