參考:
最近要為公司的消息隊(duì)列中間件進(jìn)行選型,市面上相關(guān)的開源技術(shù)又非常多闺金,如ActiveMQ逾滥、RabbitMQ、ZeroMQ败匹、Kafka寨昙,還有阿里巴巴的RocketMQ等。
這么多技術(shù)掀亩,MQ如何選型?
對(duì)于國(guó)內(nèi)開源的保持謹(jǐn)慎的態(tài)度,阿里的RocketMQ暫時(shí)不采取該中間件舔哪。
所以只能在ActiveMQ、RabbitMQ槽棍、ZeroMQ捉蚤、Kafka中間選一款作為消息隊(duì)列中間件抬驴。
下面從幾個(gè)維度來對(duì)比下
1、社區(qū)活躍度
從目前網(wǎng)上的資料上看缆巧,RabbitMQ怎爵、activeMQ、ZeroMQ三者中RabbitMQ絕對(duì)是首選盅蝗。
2、消息持久化
ZeroMq不支持消息持久化姆蘸,ActiveMQ和RabbitMQ都支持墩莫。
3、核心技術(shù)
可靠性逞敷、靈活的路由狂秦、集群、事務(wù)推捐、高可用的隊(duì)列裂问、消息排序、問題追蹤牛柒、可視化管理工具堪簿、插件系統(tǒng)等等。
RabbitMq / Kafka最好皮壁,ActiveMQ次之椭更,ZeroMQ最差。當(dāng)然ZeroMQ也可以做到蛾魄,不過自己必須手動(dòng)寫代碼實(shí)現(xiàn)虑瀑,工作量不小。尤其是可靠性中的:持久性滴须、投遞確認(rèn)舌狗、發(fā)布者證實(shí)和高可用性。
4扔水、高并發(fā)
毋庸置疑RabbitMQ最高痛侍,因?yàn)镽abbitMQ是由天生具備高并發(fā)高可用特性的erlang語(yǔ)言實(shí)現(xiàn)的。
以上對(duì)比參考來源網(wǎng)絡(luò)铭污,大同小異恋日。總結(jié)就是需要從RabbitMQ和Kafka之間選一款適合自己的嘹狞。RabbitMQ和Kafka這兩款無(wú)疑也是現(xiàn)在市場(chǎng)上有得比較多的兩款消息隊(duì)列中間件岂膳,從網(wǎng)絡(luò)資料和面試要求也可以看得出來。
關(guān)于這兩者非常全的評(píng)測(cè)磅网,參考:http://mp.weixin.qq.com/s/2Esqohw8L30Yvw4Dmr53nA
如何抉擇谈截??
總體來說,分布式消息中間件Kafka和RabbitMQ在行業(yè)認(rèn)可簸喂、服務(wù)支持毙死、可靠性、可維護(hù)性喻鳄、兼容性扼倘、易用性等方面各有特色。Kafka在開源許可證除呵、產(chǎn)品活躍度再菊、性能、安全性颜曾、可擴(kuò)展性等方面優(yōu)于RabbitMQ纠拔,Kafka采用的許可證更寬松,活躍度更高泛豪,性能遠(yuǎn)高于RabbitMQ稠诲,在安全性和可擴(kuò)展性方面能夠提供更好的保障。Kafka僅在功能上略少于RabbitMQ诡曙,但是已經(jīng)具備了主要的功能臀叙。
綜合上述所有評(píng)測(cè)結(jié)果,我們決定選擇Kafka岗仑。