RabbitMQ, ActiveMQ, and ZeroMQ are both excellent message-oriented middleware. but which of the following is more suitable for our project? Many developers are facing
RabbitMQ, ActiveMQ, and ZeroMQ are both excellent message-oriented middleware. but which of the following is more suitable for our project? Many developers are faced with this problem. Next I will compare the three message-oriented middleware. after reading this, you will be aware of it.
RabbitMQ is a leading implementation of the AMQP protocol. it implements the Broker architecture, meaning that messages can be queued on the central node before being sent to the client. This feature makes RabbitMQ easy to use and deploy. it is suitable for many scenarios, such as routing, server load balancer, and message persistence. you only need a few lines of code to use the message queue. However, this causes poor scalability and slow speed, because the central node increases latency and the Message Encapsulation is also relatively large.
ZeroMQ is a lightweight messaging system developed for high throughput/low latency scenarios. it is often found in financial applications. Compared with RabbitMQ, ZeroMQ supports many advanced message scenarios, but you must implement each block in the ZeroMQ framework (such as Socket or Device ). ZeroMQ is very flexible, but you must learn its 80-page manual (if you want to write a distributed system, read it ).
ActiveMQ is similar to ZemoMQ and can be deployed in both proxy and P2P modes. Similar to RabbitMQ, it is easy to implement advanced scenarios and requires low consumption. It is known as the "Swiss Army knife" of message-oriented middleware ".
Note that the next generation of ActiveMQ is Apollo.
Finally, these three products:
1. all have client APIs and support multiple programming languages;
2. there are a large number of documents;
3. all provide positive support.