MQ選型對比

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 要高出來很多。

選型最後總結:

1.如果我們系統中已經有選擇  Kafka  ,或者   RabbitMq  ,並且完全可以滿足現在的業務,建議就不用重複去增加和造輪子。

2.可以在  Kafka  和   RabbitMq  中選擇一個適合自己團隊和業務的,這個纔是最重要的。但是毋庸置疑現階段,綜合考慮沒有第三選擇。

 

【引用補充】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章