MQ产品比较-ActiveMQ-RocketMQ
2019獨角獸企業重金招聘Python工程師標準>>>
MQ產品比較-ActiveMQ-RocketMQ 博客分類: MQ?? 幾種MQ產品說明:
???? ZeroMQ?:??擴展性好,開發比較靈活,采用C語言實現,實際上他只是一個socket庫的重新封裝,如果我們做為消息隊列使用,需要開發大量的代碼
??? RabbitMQ?:結合erlang語言本身的并發優勢,性能較好,但是不利于做二次開發和維護
??? ActiveMQ:?歷史悠久的開源項目,已經在很多產品中得到應用,實現了JMS1.1規范,可以和spring-jms輕松融合,實現了多種協議,不夠輕巧(源代碼比RocketMQ多).,支持持久化到數據庫,對隊列數較多的情況支持不好,不過我們的項目中并不會建很多的隊列.
??? Redis?做為一個基于內存的K-V數據庫,其提供了消息訂閱的服務,可以當作MQ來使用,目前應用案例較少,且不方便擴展
??? RocketMQ:?阿里巴巴的MQ中間件,在其多個產品下使用,并能夠撐住雙十一的大流量,他并沒有實現 JMS規范,使用起來很簡單。部署由一個?命名服務(nameserver)和一個代理(broker)組成,nameserver和broker以及 producer都支持集群,隊列的容量受機器硬盤的限制,隊列滿后可以支持持久化到硬盤(也可以自己適配代碼,將其持久化到NOSQL數據庫中),隊列 滿后會影響吞吐量,可以采用主備來保證穩定性,支持回溯消費,可以在broker端進行消息過濾.
針對消息中間件的選擇可以從以下方面進行考慮:(主要對比ActiveMQ和RocketMQ)
? ?? 優先級:我們的項目對此需求不是特別明顯,RocketMQ需要新建一個特殊隊列來接收優先級高的隊列,無法實現從0-65535這種細粒度的控制,ActiveMQ可以精細控制
??????? 順序:我們的消息總線中的消息應該都是無狀態的,所以對消息的處理順序沒有嚴格的要求,如果有特殊要求的話可以在業務層進行控制,activeMQ無法保證嚴格的順序,RocketMQ可以保證嚴格的消費順序
??? 持久化:都支持
?? 穩定性:RoketMQ在穩定性上可能更值得信賴,支持多種集群方案,畢竟已經撐過幾個雙十一
? 消息過濾:ActiveMQ僅支持在客戶端消費的時候進行判斷是否是自己需要的消息,RocketMQ可以在broker端進行過濾,對于我們的消息總 線,這里可以節省大量的網絡傳輸是否會有消息重發造成的重復消費:RocketMQ可以保證,ActiveMQ無法保證
? 回溯消費:即重新將某一個時刻之前的消息重新消費一遍,我們對于這種需求應該很少,RocketMQ支持,ActiveMQ不支持(RocketMQ的隊列是持久化到硬盤的,定期進行清除
????????? 事務:都支持
? 定時消費:RocketMQ支持
?? 消息堆積:就是當緩存消息的內存滿了之后的解決方案,一種是丟棄策略,這種不會影響吞吐量,還有一種就是將消息持久化到磁盤,這種會影響吞吐量,在評估影響程度上,RocketMQ的成績稍微好一點
? 客戶端不在線:RocketMQ可以在客戶端上線后繼續將未消費的消息推送到客戶端
??????目前比較活躍的幾種MQ中間件產品的對比如下:(僅統計開源的項目)
?
http://www.coin163.com/good/blog/mq.html
轉載于:https://my.oschina.net/xiaominmin/blog/1599360
總結
以上是生活随笔為你收集整理的MQ产品比较-ActiveMQ-RocketMQ的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 银行卡被扣划怎么处理
- 下一篇: telnet 查看端口是否可访问