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: