What are the commonly used message middleware?

dc12e3bf6e934ec7a134397c6f0d01ba.jpgRocketMQ

 

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.

Guess you like

Origin blog.csdn.net/weixin_57763462/article/details/132747410