記錄—RabbitMQ、ActiveMQ、ZeroMQ、Kafka之間的比較彙總
自:http://blog.jobbole.com/103630/
MQ框架非常之多,比較流行的有RabbitMq、ActiveMq、ZeroMq、kafka。這幾種MQ到底應該選擇哪個?要根據自己專案的業務場景和需求。下面我列出這些MQ之間的對比資料和資料。
第一部分:RabbitMQ,ActiveMq,ZeroMq比較
1、 TPS比較 一
ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。這個結論來自於以下這篇文章。
2、TPS比較二
3、持久化訊息比較
zeroMq不支援,activeMq和rabbitMq都支援。持久化訊息主要是指:MQ down或者MQ所在的伺服器down了,訊息不會丟失的機制。
4、技術點:可靠性、靈活的路由、叢集、事務、高可用的佇列、訊息排序、問題追蹤、視覺化管理工具、外掛系統、社群
RabbitMq最好,ActiveMq次之,ZeroMq最差。當然ZeroMq也可以做到,不過自己必須手動寫程式碼實現,程式碼量不小。尤其是可靠性中的:永續性、投遞確認、釋出者證實和高可用性。
所以在可靠性和可用性上,RabbitMQ是首選,雖然ActiveMQ也具備,但是它效能不及RabbitMQ。
5、高併發
從實現語言來看,RabbitMQ最高,原因是它的實現語言是天生具備高併發高可用的erlang語言。
總結:
按照目前網路上的資料,RabbitMQ、activeM、zeroMQ三者中,綜合來看,RabbitMQ是首選。下面提供一篇文章,是淘寶使用RabbitMQ的心得,可以參看一些業務場景。
裡面提到的要點:
1、 RabbitMq比kafka成熟,在可用性上,穩定性上,可靠性上,RabbitMq超過kafka
2、 Kafka設計的初衷就是處理日誌的,可以看做是一個日誌系統,針對性很強,所以它並沒有具備一個成熟MQ應該具備的特性
3、 Kafka的效能(吞吐量、tps)比RabbitMq要強,這篇文章的作者認為,兩者在這方面沒有可比性。
這裡在附上兩篇文章,也是關於kafka和RabbitMq之間的比較的:
1、http://www.mrhaoting.com/?p=139
2、http://www.liaoqiqi.com/post/227
總結:
兩者對比後,我仍然是選擇RabbitMq,效能其實是很強勁的,同時具備了一個成熟的MQ應該具有的特性,我們無需重新發明輪子。
好資料推薦:
1、最全最給力的kafka部落格:http://blog.csdn.net/lizhitao/article/category/2194509
2、淘寶對rabbitmq的使用:http://www.docin.com/p-462677246.html