RabbitMq、ActiveMq、ZeroMq、kafka各个消息中间件之间的区别

MQ框架很是之多,比较流行的有RabbitMq、ActiveMq、ZeroMq、kafka。这几种MQ到底应该选择哪一个?要根据本身项目的业务场景和需求。html

 

第一部分:RabbitMQ,ActiveMq,ZeroMq比较:json

一、 TPS比较服务器

  ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。网络

二、持久化消息比较并发

      zeroMq不支持,activeMq和rabbitMq都支持。持久化消息主要是指:MQ down或者MQ所在的服务器down了,消息不会丢失的机制。框架

三、技术点:可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统、社区高并发

      RabbitMq最好,ActiveMq次之,ZeroMq最差。固然ZeroMq也能够作到,不过本身必须手动写代码实现,代码量不小。尤为是可靠性中的:持久性、投递确认、发布者证明和高可用性。工具

      因此在可靠性和可用性上,RabbitMQ是首选,虽然ActiveMQ也具有,可是它性能不及RabbitMQ。性能

 四、高并发spa

  从实现语言来看,RabbitMQ最高,缘由是它的实现语言是天生具有高并发高可用的erlang语言。

来自:https://blog.csdn.net/qq_35873847/article/details/78737796

 

第二部分:kafka和RabbitMQ的比较

一、  RabbitMq比kafka成熟,在可用性上,稳定性上,可靠性上,RabbitMq超过kafka

二、  Kafka设计的初衷就是处理日志的,能够看作是一个日志系统,针对性很强,因此它并无具有一个成熟MQ应该具有的特性

三、  Kafka的性能(吞吐量、tps)比RabbitMq要强,

来自:https://blog.csdn.net/qq_35873847/article/details/78737796

 

第三部分:RabbitMQ 选型和对比

1.从社区活跃度

按照目前网络上的资料,RabbitMQ 、activeM 、ZeroMQ 三者中,综合来看,RabbitMQ 是首选。 

2.持久化消息比较

ZeroMq 不支持,ActiveMq 和RabbitMq 都支持。持久化消息主要是指咱们机器在不可抗力因素等状况下挂掉了,消息不会丢失的机制。

3.综合技术实现

可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、问题追踪、可视化管理工具、插件系统等等。

RabbitMq / Kafka 最好,ActiveMq 次之,ZeroMq 最差。固然ZeroMq 也能够作到,不过本身必须手动写代码实现,代码量不小。尤为是可靠性中的:持久性、投递确认、发布者证明和高可用性。

4.高并发

毋庸置疑,RabbitMQ 最高,缘由是它的实现语言是天生具有高并发高可用的erlang 语言。

5.比较关注的比较, RabbitMQ 和 Kafka

RabbitMq 比Kafka 成熟,在可用性上,稳定性上,可靠性上,  RabbitMq  胜于  Kafka  (理论上)。

另外,Kafka 的定位主要在日志等方面, 由于Kafka 设计的初衷就是处理日志的,能够看作是一个日志(消息)系统一个重要组件,针对性很强,因此 若是业务方面仍是建议选择 RabbitMq 。

还有就是,Kafka 的性能(吞吐量、TPS )比RabbitMq 要高出来不少。

选型最后总结:

若是咱们系统中已经有选择  Kafka  ,或者   RabbitMq  ,而且彻底能够知足如今的业务,建议就不用重复去增长和造轮子。

能够在  Kafka  和   RabbitMq  中选择一个适合本身团队和业务的,这个才是最重要的。可是毋庸置疑现阶段,综合考虑没有第三选择。

来自:https://www.sojson.com/blog/48.html

 

第四部分:对比图

来自:https://blog.csdn.net/zhengholien/article/details/77911902

相关文章
相关标签/搜索