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

相關文章
相關標籤/搜索