Updated April 11, 2023
Introduction to RabbitMQ 3.7.23
This version of RabbitMQ was released on 5th December 2019. This is the latest version of RabbitMQ as of 26th January 2020. It was a maintenance release. 3.7.x series will be supported through March 2020. This version doesn’t support Erlang/OTP 20.3. You need to upgrade to Erlang 21.x or later in order to use RabbitMQ 3.7.23. Some CLI tools from RabbitMQ releases older than 3.7.7 will fail on Erlang 21 or later and thus RabbitMQ has to be upgraded before Erlang.
Following are the changes made in 3.7.23:
- MQTT plugin
Enhancements: Throughput improvements that range from 14 to 60 percent depending on the workload.
- AMQP 1.0 plugin
Enhancements: Throughput improvements
- STOMP plugin
Enhancements: Throughput improvements
- Web STOMP plugin
Enhancements: Now clients can authenticate using an x.509 (TLS) certificate.
Like any other version of RabbitMQ, 3.7.23 offers several advantages. It supports several variations of pub-sub, points to point, request-reply messaging techniques. It uses a smart broker/dumb consumer model and focused on delivering messages to consumers consistently. It offers great performance if configured properly, supports client libraries in Java, Ruby, .NET, PHP, and many other languages, and offers several plugins that can be added to extend use cases and integration scenarios. It offers a both synchronous and asynchronous modes of communication.
RabbitMQ 3.7.23 not only supports a variety of acknowledgments for different use cases but also supports transactions across messaging queues. It also allows segregation of the various transactional semantics (if required). It also allows distributed transactions like X/Open XA transactions. It also supports message grouping and idempotent messages. It supports a lot of fine-grain control in terms of accessing queues. One can restrict access to certain queues, manage the depth, and a lot more.
Operations and Security are areas of strength for RabbitMQ. RabbitMQ management plugin offers browser-based UI for monitoring and management, HTTP UI, and CLI tools for operations. In addition to TLS support, RabbitMQ comes with RBAC having a built-in data store, LDAP, or external HTTPS-based providers.
Messaging allows applications to connect and scale-up. Applications can connect to one another, as parts of a larger application, or to end-users’ devices and data. RabbitMQ is a messaging broker- an intermediate entity for messaging. It provides a common platform for your applications to send and receive messages, and a safe place for your messages to live until consumed. Just like previous versions, 3.7.23 offers the following features:
- Reliability: It offers a number of features that allow you to trade off performance with reliability, delivery acknowledgments, including persistence, high availability, and publish confirms. You also get finer and more consistent control on a per-message basis.
- Flexible Routing: Messages arrive at exchanges and then routed to queues. RabbitMQ offers a number of predefined exchanges for various use cases. You can define more complex routing by means of binding exchanges together or by defining your own exchange-type as a plugin.
It is useful when we need to run the same job on a specific server, group of servers, or all servers. The application sends one message and exchange will route it. This is possible due to the powerful routing capability of RabbitMQ.
- Clustering: Two or more RabbitMQ servers that are on a local network can be clustered together, forming a single large broker. Clustering involves the logical grouping of one or more nodes, virtual hosts, each sharing users, exchanges, queues, runtime parameters, bindings, and other distributed states.
- Federation: For some use cases, servers need to be unreliably and loosely connected than allowed by clustering. RabbitMQ offers a federation model for such cases.
- Highly Available Queue: Queues can be replicated across several nodes of the cluster, which ensures that messages are safe even in the case of hardware failure.
- Multi-Protocol: RabbitMQ supports several of the messaging protocols. It was originally based on the Advanced Message Queuing Protocol (AMQP). Later on, it has been modified to support Message Queuing Telemetry Transport (MQTT), Streaming Text Oriented Messaging Protocol (STOMP), and several other common protocols
- Management-UI: RabbitMQ comes equipped with an easy to use Management UI that helps in smooth control and monitoring of every aspect of the broker.
- Tracing: In case the system misbehaves, RabbitMQ offers to trace support to find out what is breaking the system.
- Plugin System: RabbitMQ comes with varieties of plugins and you are also allowed to write a custom plugins to meet requirements.
Conclusion – RabbitMQ Version
Upgrading to the latest version is always recommended as minor/major enhancements are always there. Apart from that, support for a particular version is discontinued after some time.
Recommended Articles
This is a guide to RabbitMQ Version. Here we discuss the definition, Various actions performed with file extension in RabbitMQ, and an explanation with an example. You may also have a look at the following articles to learn more –