1. 程式人生 > >訊息中介軟體的技術選型心得-RabbitMQ ActiveMQ和ZeroMQ

訊息中介軟體的技術選型心得-RabbitMQ ActiveMQ和ZeroMQ

               

訊息中介軟體的技術選型心得-RabbitMQ、ActiveMQ和ZeroMQ

作者:chszs,轉載需註明。部落格主頁:http://blog.csdn.net/chszsRabbitMQ、ActiveMQ和ZeroMQ都是極好的訊息中介軟體,但是我們在專案中該選擇哪個更適合呢?很多開發者面臨這個煩惱。下面我會對這三個訊息中介軟體做一個比較,看了後你們就心中有數了。RabbitMQ是AMQP協議領先的一個實現,它實現了代理(Broker)架構,意味著訊息在傳送到客戶端之前可以在中央節點上排隊。此特性使得RabbitMQ易於使用和部署,適宜於很多場景如路由、負載均衡或訊息持久化等,用訊息佇列只需幾行程式碼即可搞定。但是,這使得它的可擴充套件性差,速度較慢,因為中央節點增加了延遲,訊息封裝後也比較大。
ZeroMQ是一個非常輕量級的訊息系統,專門為高吞吐量/低延遲的場景開發,在金融界的應用中經常可以發現它。與RabbitMQ相比,ZeroMQ支援許多高階訊息場景,但是你必須實現ZeroMQ框架中的各個塊(比如Socket或Device等)。ZeroMQ非常靈活,但是你必須學習它的80頁的手冊(如果你要寫一個分散式系統,一定要閱讀它)。ActiveMQ居於兩者之間,類似於ZemoMQ,它可以部署於代理模式和P2P模式。類似於RabbitMQ,它易於實現高階場景,而且只需付出低消耗。它被譽為訊息中介軟體的“瑞士軍刀”。要注意一點,ActiveMQ的下一代產品為Apollo。最終,這三個產品:1. 都有客戶端API且支援多種程式語言;2. 都有大量的文件;3. 都提供了積極的支援。