[RabbitMq、ActiveMq、ZeroMq、kafka之間的比較,資料匯總](http://blog.csdn.net/linsongbin1/article/details/47781187)
MQ框架非常之多,比較流行的有RabbitMq、ActiveMq、ZeroMq、kafka。這幾種MQ到底應該選擇哪個?要根據自己項目的業務場景和需求。下面我列出這些MQ之間的對比數據和資料。
**第一部分:RabbitMQ,ActiveMq,ZeroMq比較**
**1、?TPS比較 一**
ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。這個結論來自于以下這篇文章。
[http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/](http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/)
測試環境:
?????Model: Dell Studio 1749
? ? ?CPU: Intel Core i3 @ 2.40 GHz
? ? ?RAM: 4 Gb
? ? ?OS: Windows 7 64 bits
其中包括持久化消息和瞬時消息的測試。注意這篇文章里面提到的MQ,都是采用**默認配置**的,并無調優。

更多的統計圖請參看我提供的文章url。
**2、TPS比較**二
ZeroMq?最好,RabbitMq次之,?ActiveMq最差。這個結論來自于一下這篇文章。[http://www.cnblogs.com/amityat/archive/2011/08/31/2160293.html](http://www.cnblogs.com/amityat/archive/2011/08/31/2160293.html)?
顯示的是發送和接受的每秒鐘的消息數。整個過程共產生1百萬條1K的消息。測試的執行是在一個Windows Vista上進行的。

**3****、持久化消息比較**
zeroMq**不支持**,activeMq和rabbitMq都**支持**。持久化消息主要是指:MQ down或者MQ所在的服務器down了,消息不會丟失的機制。
**4、技術點:可靠性、靈活的路由、集群、事務、高可用的隊列、消息排序、問題追蹤、可視化管理工具、插件系統、社區**
? ? ? RabbitMq最好,ActiveMq次之,ZeroMq最差。當然ZeroMq也可以做到,不過自己必須手動寫代碼實現,代碼量不小。尤其是可靠性中的:持久性、投遞確認、發布者證實和高可用性。
??????所以在可靠性和可用性上,RabbitMQ是首選,雖然ActiveMQ也具備,但是它性能不及RabbitMQ。
**?5、高并發**
從實現語言來看,RabbitMQ最高,原因是它的實現語言是天生具備高并發高可用的**erlang**語言。
總結:
按照目前網絡上的資料,RabbitMQ、activeM、zeroMQ三者中,綜合來看,RabbitMQ是首選。下面提供一篇文章,是淘寶使用RabbitMQ的心得,可以參看一些業務場景。
[http://www.docin.com/p-462677246.html](http://www.docin.com/p-462677246.html)
**第二部分:kafka和RabbitMQ的比較**
關于這兩種MQ的比較,網上的資料并不多,最權威的的是kafka的提交者寫一篇文章。[http://www.quora.com/What-are-the-differences-between-Apache-Kafka-and-RabbitMQ](http://www.quora.com/What-are-the-differences-between-Apache-Kafka-and-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
[](http://blog.csdn.net/linsongbin1/rss/list)
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
- 誰能舉個通俗易懂的例子告訴我IAAS,SAAS,PAAS的區別?
- 服務器與容器
- 常見NIO框架
- Nginx/Apache 和Apache Tomcat 的區別
- tomcat結合nginx使用小結
- java nio框架netty 與tomcat的關系
- Nginx、Lighttpd與Apache的區別
- Apache vs Lighttpd vs Nginx對比
- 數據庫
- mybatis
- MyBatis傳入多個參數的問題
- MS
- JMS(Java消息服務)入門教程
- ActiveMQ
- JMS簡介與ActiveMQ實戰
- JMS-使用消息隊列優化網站性能
- 深入淺出JMS(一)--JMS基本概念
- 深入淺出JMS(二)--ActiveMQ簡單介紹以及安裝
- 深入淺出JMS(三)--ActiveMQ簡單的HelloWorld實例
- RabbitMq、ActiveMq、ZeroMq、kafka之間的比較,資料匯總
- kafka
- zookeeper
- 集群與負載
- 單機到分布式集群
- 日志
- 從Log4j遷移到LogBack的理由
- 角色權限
- shiro
- Shiro的認證和權限控制
- Spring 整合 Apache Shiro 實現各等級的權限管理
- 安全
- basic
- Servlet、Filter、Listener深入理解
- filter與servlet的比較
- Servlet Filter