消息中间件ActiveMQRabbitMQRocketMQZeroMQKafka如何选型?
Posted 架构之路
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了消息中间件ActiveMQRabbitMQRocketMQZeroMQKafka如何选型?相关的知识,希望对你有一定的参考价值。
架构干货,第一时间送达!
最近要为公司的消息队列中间件进行选型,市面上相关的开源技术又非常多,如ActiveMQ、RabbitMQ、ZeroMQ、Kafka,还有阿里巴巴的RocketMQ等。
这么多技术,如何进行选型呢?
首先对于阿里的RocketMQ,因为是阿里开源的,对于国内开源的保持谨慎的态度,暂时不采取该中间件。
所以只能在ActiveMQ、RabbitMQ、ZeroMQ、Kafka中间选一款作为消息队列中间件。
下面从几个维度来对比下
1、社区活跃度
从目前网上的资料上看,RabbitMQ、activeMQ、ZeroMQ三者中RabbitMQ绝对是首选。
2、消息持久化
ZeroMq不支持消息持久化,ActiveMQ和RabbitMQ都支持。
3、核心技术
可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统等等。
RabbitMq / Kafka最好,ActiveMQ次之,ZeroMQ最差。当然ZeroMQ也可以做到,不过自己必须手动写代码实现,工作量不小。尤其是可靠性中的:持久性、投递确认、发布者证实和高可用性。
4、高并发
毋庸置疑RabbitMQ最高,因为RabbitMQ是由天生具备高并发高可用特性的erlang语言实现的。
以上对比参考来源网络,大同小异。总结就是需要从RabbitMQ和Kafka之间选一款适合自己的。RabbitMQ和Kafka这两款无疑也是现在市场上有得比较多的两款消息队列中间件,从网络资料和面试要求也可以看得出来。
关于这两者非常全的评测,参考:https://mp.weixin.qq.com/s?__biz=MzI3NDAwNDUwNg==&mid=2648307598&idx=1&sn=eeaa9d795ef6ba13368e7a76ca14bae7&chksm=f337f8fbc44071ed8496f251a0b449f63f70c290947c642914f1f1c8349e1cccde4c1841323a#rd
如何抉择??
总体来说,分布式消息中间件Kafka和RabbitMQ在行业认可、服务支持、可靠性、可维护性、兼容性、易用性等方面各有特色。Kafka在开源许可证、产品活跃度、性能、安全性、可扩展性等方面优于RabbitMQ,Kafka采用的许可证更宽松,活跃度更高,性能远高于RabbitMQ,在安全性和可扩展性方面能够提供更好的保障。Kafka仅在功能上略少于RabbitMQ,但是已经具备了主要的功能。
综合上述所有评测结果,我们决定选择Kafka。
推荐:
- End -
以上是关于消息中间件ActiveMQRabbitMQRocketMQZeroMQKafka如何选型?的主要内容,如果未能解决你的问题,请参考以下文章