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

RabbitMQ `3.10.6` is a maintenance release in the `3.10.x` release series. Please refer to the upgrade section from if upgrading from a version prior to 3.10.0. This release requires at least Erlang 23.2, and supports Erlang 24 and 25. has more details on Erlang version requirements for RabbitMQ. Release notes can be found on GitHub at . Stream metric collection is now more CPU efficient. It helps in environments that have many streams. GitHub issue: Optimization: internal message GUID is no longer generated for quorum queues and streams, as they are specific to classic queues. GitHub issue: Two more AMQP 1.0 connection lifecycle events are now logged. GitHub issue: CRC32 checksum verification now can be disabled for quorum queues: ``` quorumqueue.computechecksums = false ``` This may be beneficial in environments that messages are large and CPU resources are limited. Note the CRC32 checksums are not the only data corruption detection mechanism used by quorum queues but they are good at catching certain types of corruption. Disabling checksums can provide quorum queue throughput boost of up to 15%. In environments where message size is small the gains will be smaller. GitHub issue: TLS configuration for inter-node stream replication connections now can use function references and definitions. GitHub issue: Stream protocol connection logging is now less verbose. GitHub issue: Max stream segment size is now limited to 3 GiB to avoid a potential stream position overflow. GitHub issue: Stream coordinator warnings now include operation name for clarify. GitHub issue: Logging messages that use microseconds now use "us" for the SI symbol to be compatible with more tools. GitHub issue: Channels on connections to mixed clusters that had 3.8 nodes in them could run into an exception. GitHub issue: Inter-node cluster link statistics did not have any data when TLS was enabled for them. GitHub issue: Quorum queues now correctly propagate errors when a `basic.get` (polling consumption) operation hits a timeout. Contributed by Ayanda @Ayanda-D Dube. GitHub issue: Stream consumer that used AMQP 0-9-1 instead of a stream protocol client, and disconnected, leaked a file handle. GitHub issue: Max frame size and client heartbeat parameters for clients were not correctly set when taken from `rabbitmq.conf`. GitHub issue: Removed a duplicate exchange decorator set operation. Contributed by Pter @gomoripeti Gmri. GitHub issue: Node restarts could result in a hashing ring inconsistency. This required a potentially breaking change: this exchange type now only allows for one binding between an exchange and a queue (or another exchange). All subsequent binding operations between them will be ignored, so "first write wins". This is a natural topology for this plugin, and enforcing it helps avoid a set of potential issues with concurrent node restarts and client operations that affect consistent hash ring state. GitHub issue: Consul peer discovery now supports client-side TLS options, much like its Kubernetes and etcd peers. ``` ini cluster_formation.consul.scheme = https cluster_formation.consul.port = 8501 clusterformation.consul.ssloptions.cacertfile = /path/to/consul/generated/ca_certificate.pem clusterformation.consul.ssloptions.certfile = /path/to/client/certificate.pem clusterformation.consul.ssloptions.keyfile = /path/to/client/client_key.pem ``` GitHub issue: `ra` upgraded from To obtain source code of the entire distribution, please download the archive named `rabbitmq-server-3.10.6.tar.xz` instead of the source tarball produced by GitHub.