Comparison of ActiveMQ and RocketMQ

image

Common message queue

Comparison of ActiveMQ, RocketMQ, Kafka

Producer-Consumer mode (Producer-Consumer)

ActiveMQ-support, RocketMQ-support, Kafka-support.

Publish-Subscribe mode (Publish-Subscribe)

ActiveMQ-support, RocketMQ-support, Kafka-support.

Request-Reply Model (Request-Reply)

ActiveMQ-supported, RocketMQ-not supported, Kafka-not supported.


API completeness

ActiveMQ-high, RocketMQ-high, Kafka-high.


Multi-language support

ActiveMQ-support, RocketMQ-only support JAVA, Kafka-support.


Single machine throughput

ActiveMQ-10,000 level, RocketMQ-10,000 level, Kafka-100,000 level.


Message delay

ActiveMQ-none, RocketMQ-millisecond level, Kafka-millisecond level.


Availability

ActiveMQ-high (master-slave), RocketMQ-very high (distributed), Kafka-very high (distributed).


Message is lost

ActiveMQ-low, RocketMQ-theoretically not lost, Kafka-theoretically not lost.


Completeness of the document

ActiveMQ-high, RocketMQ-high, Kafka-high.


Provide quick start

ActiveMQ-Yes, RocketMQ-Yes, Kafka-Yes.


Community activity

ActiveMQ-high, RocketMQ-medium, Kafka-high.


Business support

ActiveMQ-None, RocketMQ-Alibaba Cloud, Kafka-Alibaba Cloud.


ActiveMQ, RocketMQ, Kafka in general:


ActiveMQ

The open source project with a long history has been applied in many products. It has realized the JMS1.1 specification, can be easily integrated with spring-jms, realized a variety of protocols, is not light enough (the source code is more than RocketMQ), and supports persistence to the database , The support is not good for situations with a large number of queues.


RocketMQ

RocketMQ is Ali's open source message middleware. It is currently incubated in Apache and developed in pure Java. It has the characteristics of high throughput, high availability, and suitable for large-scale distributed system applications.

The RocketMQ idea originated from Kafka, but it is not a simple copy. It optimizes the reliable transmission and transactional properties of messages. At present, it is widely used in Alibaba Group for transactions, recharge, stream computing, message push, log streaming, binglog The distribution and other scenes have supported Ali's multiple double eleven events.

Because it is the product of Alibaba's internal practice to products, many interfaces and APIs are not very universally applicable. Its reliability is undoubted, and it is in the same line as Kafka (or even better), strong performance, and supports massive accumulation.


Kafka

Kafka was originally designed to process logs. It does not support AMQP transaction processing. It can be regarded as a log system with strong pertinence, so it does not have the characteristics that a mature MQ should have.

Kafka's performance (throughput, tps) is stronger than RabbitMQ, and it has advantages over RabbitMQ if it is used for fast processing of large amounts of data.

----------------------end---------------------

Recommended reading:


Guess you like

Origin blog.51cto.com/15127516/2657627