Compare the current mainstream message queues and selection issues
Apache ActiveMQ、Kafka、RabbitMQ、RocketMQ
-
ActiveMQ:http://activemq.apache.org/
- Produced by Apache, with a long history, supports multi-language clients and protocols, supports multi-language Java, .NET, C++, etc., based on JMS Provider implementation
Disadvantages: throughput is not high, performance is reduced when there are multiple queues, there is a situation of message loss, and less large-scale use
-
Kafka:http://kafka.apache.org/
- It is an open source stream processing platform developed by the Apache Software Foundation and written in Scala and Java. Kafka is a high-throughput distributed publish-and-subscribe messaging system, which can process all action flow data (web browsing, search and other user actions) in large-scale websites, a replica set mechanism, data redundancy, and guarantee Try not to lose data; support multiple producers and consumers
Disadvantages: batch and broadcast messages are not supported, operation and maintenance are difficult, documentation is relatively small, Scala is required
-
RabbitMQ:http://www.rabbitmq.com/
- It is an open source AMQP implementation. The server is written in Erlang language and supports a variety of clients, such as: Python, Ruby, .NET, Java, JMS, C. It is used to store and forward messages in a distributed system. It is easy to use , Scalability, high availability, etc.
Disadvantages: using Erlang to develop, it is difficult to read and modify the source code
-
RocketMQ:http://rocketmq.apache.org/
- A message middleware developed by Ali open source, pure Java development, with high throughput, high availability, suitable for large-scale distributed system applications, strong performance (zero copy technology), support for massive accumulation, support for specified times and time intervals Retransmission of failed messages, supports consumer-side tag filtering, delayed messages, etc., for large-scale use within Ali, suitable for use in e-commerce, Internet finance and other fields