消息隊列已經逐漸成爲企業IT系統內部通訊的核心手段。它具備低耦合、可靠投遞、廣播、流量控制、最終一致性等一系列功能,成爲異步RPC的主要手段之一。當今市面上有不少主流的消息中間件,如老牌的ActiveMQ、RabbitMQ,煊赫一時的Kafka,阿里巴巴自主開發RocketMQ等。java
主流消息中間件比較:架構
對比之總結以下:異步
通常的業務系統要引入MQ,最先你們都用ActiveMQ,可是如今確實你們用的很少了,沒通過大規模吞吐量場景的驗證,社區也不是很活躍,因此你們仍是算了吧,我我的不推薦用這個了;ide
後來你們開始用RabbitMQ,可是確實erlang語言阻止了大量的java工程師去深刻研究和掌控他,對公司而言,幾乎處於不可控的狀態,可是確實人是開源的,比較穩定的支持,活躍度也高;大數據
如今確實愈來愈多的公司,會去用RocketMQ,確實很不錯,可是我提醒一下本身想好社區萬一忽然黃掉的風險,對本身公司技術實力有絕對自信的,我推薦用RocketMQ,不然回去老老實實用RabbitMQ吧,人是活躍開源社區,絕對不會黃因此中小型公司,技術實力較爲通常,技術挑戰不是特別高,用RabbitMQ是不錯的選擇;大型公司,基礎架構研發實力較強,用RocketMQ是很好的選擇;spa
若是是大數據領域的實時計算、日誌採集等場景,用Kafka是業內標準的,絕對沒問題,社區活躍度很高,絕對不會黃,況且幾乎是全世界這個領域的事實性規範。.net
RabbitMQ比Kafka成熟,在可用性上,可靠性上,穩定性上,RabbitMQ理論上勝於Kafka,因爲Kafka設計初衷是處理日誌,能夠看作是日誌(消息)系統一個重要組件,針對性很強,雖然吞吐量遠高於RabbitMQ,但從業務方面考慮仍是建議選擇RabbitMQ。設計
參考資料:3d
https://blog.csdn.net/leexide/article/details/80035462日誌
https://blog.csdn.net/luckyzhoustar/article/details/50411500
https://blog.csdn.net/java_zyq/article/details/80022391
https://blog.csdn.net/kingmax54212008/article/details/51706128
https://www.jianshu.com/p/5192654fc0a7
https://www.jianshu.com/p/be2958745054