RocketMQ
Alibaba open source, designed by Alibaba with reference to kafka, implemented in Java
Ability to guarantee strict message ordering
Provide message filtering function
Provides rich message pulling modes
Efficient subscriber horizontal scalability
Real-time message subscription mechanism
Billion-level message accumulation capability
RabbitMQ
Erlang implementation is very heavyweight and more suitable for enterprise-level development. At the same time, the Broker architecture is implemented. The core idea is that the producer will not send messages directly to the queue. The message is first queued in the central queue when sent to the client. It has good support for routing, load balance and data persistence.
ActiveMQ
A sub-project under Apache, implemented in Java, with a small amount of code you can efficiently implement advanced application scenarios
Redis
Can be used as a lightweight queue service, implemented in C language
Experiments have shown that when entering the queue, the performance of Redis is higher than that of RabbitMQ when the data is relatively small, but if the data size exceeds 10K, Redis is unbearably slow; when leaving the queue, Redis shows very good performance regardless of the size of the data. , and the dequeue performance of RabbitMQ is much lower than that of Redis
Kafka
A sub-project under Apache, a high-performance distributed Publish/Subscribe message queue system implemented using scala
Fast persistence: Through disk sequential read and write and zero-copy mechanism, message persistence can be carried out with O(1) system overhead;
High throughput: A throughput rate of 10W/s can be achieved on an ordinary server;
High accumulation: supports consumers under the topic to be offline for a long time, and the amount of message accumulation is large;
Completely distributed system: Broker, Producer, and Consumer all natively and automatically support distribution, relying on zookeeper to automatically achieve complex balance;
Supports parallel loading of Hadoop data: This is a feasible solution for log data and offline analysis systems like Hadoop but requiring real-time processing constraints
ZeroMQ
Known as the fastest message queue system, it is specially developed for high throughput/low latency scenarios. It is often used in applications in the financial industry and focuses on real-time data communication scenarios.
Only non-persistent queues are provided. If the machine is down, data will be lost.