常見的企業級MQ服務器
1. RabbitMQ負載均衡
是使用Erlang編寫的一個開源的消息隊列,自己支持不少的協議:AMQP,XMPP, SMTP, STOMP。框架
優勢: 也正是如此,使的它變的很是重量級,更適合於企業級的開發。同時實現了一個代理(Broker)構架,這意味着消息在發送到客戶端以前能夠在中央節點上排隊。對路由(Routing),負載均衡(Load balance)或者數據持久化都有很好的支持。分佈式
缺點: 它的可擴展性差,速度較慢,由於中央節點增長了延遲,消息封裝後也比較大。oop
2. ZeroMQ性能
ZeroMQ是一個很是輕量級的消息系統,專門爲高吞吐量/低延遲的場景開發,在金融界的應用中常常能夠發現它。學習
優勢:號稱最快的消息隊列系統,尤爲針對大吞吐量的需求場景。ZeroMQ可以實現RabbitMQ不擅長的高級/複雜的隊列。代理
缺點: 與RabbitMQ相比,ZeroMQ支持許多高級消息場景,可是你必須實現ZeroMQ框架中的各個塊(好比Socket或Device等)。ZeroMQ很是靈活,可是你必須學習它的80頁的手冊(若是你要寫一個分佈式系統,必定要閱讀它)。日誌
應用:Twitter的Storm中使用ZeroMQ做爲數據流的傳輸。orm
3. ActiveMQ
ActiveMQ居於二者之間,相似於ZemoMQ,它能夠部署於代理模式和P2P模式。相似於RabbitMQ,它易於實現高級場景,並且只需付出低消耗。它被譽爲消息中間件的「瑞士軍刀」。
ActiveMQ的下一代產品爲Apollo。
4. Jafka/Kafka
Kafka是Apache下的一個子項目,是一個高性能跨語言分佈式Publish/Subscribe消息隊列系統,而Jafka是在Kafka之上孵化而來的,即Kafka的一個升級版。具備如下特性:快速持久化,能夠在O(1)的系統開銷下進行消息持久化;高吞吐,在一臺普通的服務器上既能夠達到10W/s的吞吐速率;徹底的分佈式系統,Broker、Producer、Consumer都原生自動支持分佈式,自動實現複雜均衡;支持Hadoop數據並行加載,對於像Hadoop的同樣的日誌數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka經過Hadoop的並行加載機制來統一了在線和離線的消息處理,這一點也是本課題所研究系統所看重的。Apache Kafka相對於ActiveMQ是一個很是輕量級的消息系統,除了性能很是好以外,仍是一個工做良好的分佈式系統。
99. 其餘MQ
Redis(也可用做消息組件)、HornetQ、Apache Qpid、Sparrow、Starling、Kestrel、Beanstalkd、Amazon SQS