How to choose the message middleware ActiveMQ, RabbitMQ, RocketMQ, ZeroMQ, Kafka?

I have recently selected the company's message queue middleware, and there are many open source technologies on the market, such as ActiveMQ, RabbitMQ, ZeroMQ, Kafka, and Alibaba's RocketMQ.

With so many technologies, how to choose?

First of all, for Alibaba's RocketMQ, because it is open sourced by Ali, we maintain a cautious attitude towards domestic open source and temporarily do not adopt this middleware.

Therefore, only one of ActiveMQ, RabbitMQ, ZeroMQ, Kafka can be selected as the message queue middleware.

Let's compare from several dimensions

1. Community activity

From the current online information, RabbitMQ, RabbitMQ, ActiveMQ, and ZeroMQ are definitely the first choice.

2, endurance

ZeroMq does not support message persistence, both ActiveMQ and RabbitMQ support.

3. Core technology

Reliability, flexible routing, clusters, transactions, high-availability queues, message sequencing, problem tracking, visual management tools, plug-in systems, etc.

RabbitMq / Kafka is the best, ActiveMQ is second, and ZeroMQ is the worst. Of course, ZeroMQ can also do it, but you must manually write code to achieve, the workload is not small. Especially in reliability: durability, delivery confirmation, publisher confirmation, and high availability.

4. High concurrency

There is no doubt that RabbitMQ is the highest, because RabbitMQ is implemented by the erlang language that is born with high concurrency and high availability.

The above comparison refers to the source network, which is similar. The conclusion is that you need to choose a suitable one between RabbitMQ and Kafka. RabbitMQ and Kafka are undoubtedly the two message queue middlewares currently on the market, which can be seen from the network information and interview requirements.

For a very comprehensive evaluation of the two, refer to: https://mp.weixin.qq.com/s?__biz=MzI3NDAwNDUwNg==&mid=2648307598&idx=1&sn=eeaa9d795ef6ba13368e7a76ca14bae7&chksm=f337f8fbc44071ed8496f251a0c449fcfc1

How to choose? ?

Overall, distributed messaging middleware Kafka and RabbitMQ have their own characteristics in terms of industry recognition, service support, reliability, maintainability, compatibility, and ease of use. Kafka is better than RabbitMQ in terms of open source licenses, product activity, performance, security, and scalability. Kafka uses a more relaxed license and higher activity, and its performance is much higher than RabbitMQ. Aspect can provide better protection. Kafka is only slightly less functional than RabbitMQ, but it already has the main functions.

Based on all the above evaluation results, we decided to choose Kafka.

I recommend going to my blog to read more:

1. Java JVM, collection, multithreading, new features series tutorials

2. Spring MVC, Spring Boot, Spring Cloud series of tutorials

3. Maven, Git, Eclipse, Intellij IDEA series of tool tutorials

4. The latest interview questions for Java, backend, architecture, Alibaba and other major manufacturers

Life is beautiful, see you tomorrow ~

Guess you like

Origin www.cnblogs.com/javastack/p/12710308.html