Comparison of RabbitMQ with ActiveMQ, Zeromq and Kafka

Source: Internet
Author: User
Tags rabbitmq

Before writing an article about active and Message Queuing push-pull mode, you can refer to: Link

For more information on Active vs. RABBITMQ and other comparisons, there are the following records:

This article link refers to:

Basic introduction
RabbitMQ: based on the AMQP protocol ( Advanced Message Queue Protocol)
ActiveMQ: based on Stomp Protocol (Note: I only know that it is based on JMS)

The RabbitMQ is an MQ implemented by AMQP with Erlang. The reason for using Erlang (Erlang message mechanism is extremely consistent with AMQP ):

AMQP is primarily a creative effort by software experts in the financial field, and unites the power of communication and software to create the specifications together.
"Contributors:jpmorgan Chase Bank & Co., Cisco Systems, Inc., Credit Suisse, Envoy Technologies Inc.,imatix Corporati On
IONA Technologies, Rabbit Technologies Ltd., Red Hat, Inc., TWIST Process Innovations Ltd, and 29West, Inc.

Roughly conceptually, AMQP first meets the messaging business needs of the financial system.
This is a message middleware open specification that can be compared with JMS,the difference is that AMQP also defines the semantic and protocol aspects of the message middleware .;
Another difference is that AMQP is language neutral, and JMS is only relevant to Java.

AMQP is defined in "semantic plane", which means that it is not just like JMS or other MQ.can only work in a predefined wayBut"programmable" message middleware。
"Language neutrality" means that any language can develop a message component or even the middleware itself, as long as the AMQP protocol is followed.
For example, "The Java-written message end (the new front-end) interacts with message-oriented middleware (infrastructure) written in Erlang and another message end (Legacy system) written by C."

AMQP is an open standard that is still0.9Version. Not yet mature, but there has been a lot of this standard implementation product on the market.

In the bright future outlined by AMQP, we can envision the future of building a financial system built on top of amqp after maturity.
Front-end programmers use their familiar "industrial language" to build new application modules in the system. Back-end programmers continue to use "old language" in the "legacy system" to slowly improve.
Of course, the financial system needs the "infrastructure" that they rely on to communicate and call each other, to provide the industry with"High concurrency, Easy expansion"Product, which seems to be the strength of Erlang.

I've heard of "Erlang entering the financial system", which is probably the case.

More specific (not very understanding):

because Erlang has seven advantages, it facilitates the development of messaging systems: 1 . Distributed     2 . Hot code upgrade    3 . Inline process Monitoring     4 . Predictable high-speed     5  67. Portable

Here are some indicator comparisons (see link)

Part I: Comparison of ACTIVEMQ,RABBITMQ,ZEROMQ

1. TPS Comparison

ZeroMq Best, RabbitMq second, ActiveMq worst.

2. Persistent message comparison

ZeroMq not supported ,ACTIVEMQ and rabbitmq are supported .

Persistent messages mainly refer to the mechanism where MQ down or MQ servers are down and messages are not lost.

3. Technical points: reliability, flexible routing, clustering, transactions, highly available queues, message sequencing, problem tracking, visual management tools, plug-in systems, community

RABBITMQ Best, Activemq second, zeromq worst.

Of course zeromq can also do, but they have to manually write code implementation, the amount of code is not small. Especially in reliability: persistence, delivery Confirmation, publisher verification, and high availability .

So in reliability and availability, RABBITMQ is the first choice, although Activemq also has, but its performance is less than RABBITMQ.

4, High concurrency

In terms of implementation language, RABBITMQ is the highest, because its implementation language is inherently high concurrency high availability of Erlang language.

Part II: Comparison of Kafka and RABBITMQ

1, rabbitmq than Kafka mature, in the availability, stability, reliability, rabbitmq more than Kafka

2, Kafka design is the original intention is to deal with the log , can be seen as a log system, targeted very strong, so it does not have a mature MQ should have the characteristics

3. Kafka Performance (throughput, TPS) is stronger than RABBITMQ, the author of this article argues that there is no comparability in this respect.

In addition, there is this ppt about some of the advantages of rabbit and selection considerations: Link

PPT downloaded, location:/users/baidu/documents/data/interview/store-nosql-redis-Message Queue/Why should I choose Rabbitmq.pptx

Finish

Comparison of RabbitMQ with ActiveMQ, Zeromq and Kafka

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.