This article presents and compares the origins, architectures, and use cases of Apache Kafka, which is designed for high volume publish-subscribe messages and streams, and RabbitMQ, a general purpose message broker.
RabbitMQ is a “traditional” message broker that implements a variety of messaging protocols. (…) Apache Kafka is developed in Scala and started out at LinkedIn.
By Pieter Humphrey, Product Marketing Manager at Pivotal Software, Inc.
Apache Kafka, Kafka, and the Kafka logo are either registered trademarks or trademarks of The Apache Software Foundationin the United States and other countries. RabbitMQ is a trademark of Pivotal Software, Inc. in the U.S. and other countries.
The RabbitMQ team announced the release of RabbitMQ 3.6.10. This release contains bug fixes and usability improvements. Binary and source distributions of the new release can be found on the downloads page, GitHub, Package Cloud, and Bintray. The RabbitMQ team encourages all users of earlier versions of RabbitMQ to upgrade to this latest release.
Habarisoft released new versions of Habari Client libraries for Delphi and Free Pascal application integration with popular free open source message brokers. This release has been tested with Apache ActiveMQ 5.14.5, Apache ActiveMQ Artemis 2.0, OpenMQ 5.1.1 and RabbitMQ 3.6.9. It contains enhancements and better test case organization of the included DUnit / FPCUnit test projects, which now prefer Stomp 1.2 over Stomp 1.0. It also introduces the IConnectionInfo interface, which returns broker version string and Stomp version of the current connection. Starting with this release, the library requires Delphi 2009 or Free Pascal 3.0.2 (or newer), it is not compatible with non-Unicode versions of Delphi. The internal version numbers of all client libraries in the 2017.04 release is 5.0.0.
Habari Client libraries enable Object Pascal applications to take advantage of message broker / message queue technology – which is distributed, loosely coupled, reliable and asynchronous – to build integrated systems, using peer-to-peer and publish-subscribe communication models.
CloudAMQP is a service which provides managed RabbitMQ servers in the cloud. For developers, it offers a free plan, called “Little Lemur”. Clients can connect using various protocols: AMQP, AMQPS, HTTPS, STOMP and MQTT. Dedicated plans do also have support for WEB-STOMP.
One outstanding feature of the popular Apache ActiveMQ message broker is its rich message conversioncapability, which allows cross-platform/cross-language exchange by serialization of JMS object and map messages to XML or JSON. Non-Java clients do not have to support the native ActiveMQ wire protocol. Instead, they can use a simple protocol such as STOMP.
The RabbitMQ STOMP plugin supports advanced queue features, which can be defined in the management interface but also from clients when the queue is created. No matter how these features have been declared, RabbitMQ requires that the client specifies the same feature settings anytime when this queue is used.
In this blog post of 2014, Jerry Kuch describes a performance study of RabbitMQ on Google Compute Engine. It demonstrated the ability to receive and deliver more than one million messages per second (a sustained combined ingress/egress of over two million messages per second).
At this high rate of combined ingress (1,345,531 messages per second) and egress (1,413,840 messages per second), RabbitMQ was keeping up with load and that only 2,343 messages are temporarily accumulated in its queues awaiting delivery.