RabbitMq、ActiveMq、ZeroMq、kafka之間的比較,資料彙總
文件一
RabbitMQ是AMQP協議領先的一個實現,它實現了代理(Broker)架構,意味著訊息在傳送到客戶端之前可以在中央節點上排隊。此特性使得RabbitMQ易於使用和部署,適宜於很多場景如路由、負載均衡或訊息持久化等,用訊息佇列只需幾行程式碼即可搞定。但是,這使得它的可擴充套件性差,速度較慢,因為中央節點增加了延遲,訊息封裝後也比較大。
ZeroMQ是一個非常輕量級的訊息系統,專門為高吞吐量/低延遲的場景開發,在金融界的應用中經常可以發現它。與RabbitMQ相比,ZeroMQ支援許多高階訊息場景,但是你必須實現ZeroMQ框架中的各個塊(比如Socket或Device等)。ZeroMQ非常靈活,但是你必須學習它的80頁的手冊(如果你要寫一個分散式系統,一定要閱讀它)。
ActiveMQ居於兩者之間,類似於ZemoMQ,它可以部署於代理模式和P2P模式。類似於RabbitMQ,它易於實現高階場景,而且只需付出低消耗。它被譽為訊息中介軟體的“瑞士軍刀”。
要注意一點,ActiveMQ的下一代產品為Apollo。
最終,這三個產品:
1. 都有客戶端API且支援多種程式語言;
2. 都有大量的文件;
3. 都提供了積極的支援。
文件二
MQ框架非常之多,比較流行的有RabbitMq、ActiveMq、ZeroMq、kafka。這幾種MQ到底應該選擇哪個?要根據自己專案的業務場景和需求。下面我列出這些MQ之間的對比資料和資料。
第一部分:RabbitMQ,ActiveMq,ZeroMq比較
1、 TPS比較 一
ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。這個結論來自於以下這篇文章。
測試環境:
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
顯示的是傳送和接受的每秒鐘的訊息數。整個過程共產生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
第二部分:kafka和RabbitMQ的比較
關於這兩種MQ的比較,網上的資料並不多,最權威的的是kafka的提交者寫一篇文章。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
相關文章
- 訊息中介軟體部署及比較:rabbitMQ、activeMQ、zeroMQ、rocketMQ、Kafka、redisMQKafkaRedis
- Java訊息佇列總結只需一篇解決ActiveMQ、RabbitMQ、ZeroMQ、KafkaJava佇列MQKafka
- 大資料教程系列之Kafka和activemq對比大資料KafkaMQ
- 訊息中介軟體(RabbitMq、Kafka)分析比較MQKafka
- 從消費者角度比較Kafka 與 RabbitMQ - OpenCredoKafkaMQ
- 事件流平臺Kafka、Pulsar和RabbitMQ比較 - Picnic事件KafkaMQ
- MQ雙修之(ActiveMq & RabbitMQ)MQ
- 微服務訊息代理比較:Redis vs Kafka vs RabbitMQ - Mertcan微服務RedisKafkaMQ
- 【RocketMq】什麼是,對比ActiveMq和KafkaMQKafka
- Java物件之間的比較之equals和==Java物件
- c# ref out 區別 比較 彙總C#
- RabbitMQ與Kafka選型對比MQKafka
- 【IOS】java 與oc之間的比較iOSJava
- Java,Go和Rust之間的比較 - DexterJavaGoRust
- 訊息佇列的作用以及kafka和activemq的對比佇列KafkaMQ
- 資料彙總
- 彙總資料
- js中各個型別之間的比較JS型別
- Ruby程式語言與Ruby之間的比較
- Java:比較運算子compareTo()、equals()、==之間的區別與應用總結Java
- 圖資料庫比較資料庫
- 資料結構比較資料結構
- 主流資料庫比較資料庫
- RabbitMQ,RocketMQ,Kafka 幾種訊息佇列的對比MQKafka佇列
- Activemq和Rabbitmq埠衝突MQ
- Nosqlfans的redis資料彙總SQLRedis
- rabbitmq安裝使用問題彙總MQ
- 機器學習資料彙總機器學習
- mycat 資料彙總
- 常見資料庫系統比較之Oracle資料庫(轉)資料庫Oracle
- Linux常見問題彙總,比較適合菜鳥哈Linux
- 演算法執行時間、logN、NlogN 之間的比較演算法
- HHDESK資料夾比較功能
- docker 安裝mysql redis activemq rabbitmqDockerMySqlRedisMQ
- 資料探勘資源彙總
- 訂單量多,用什麼智慧軟體彙總比較好
- 【彙總】學習Python用哪個直譯器比較好?Python
- 關於資料庫間連結問題彙總---Oracle資料庫Oracle