RocketMQ出自阿里公司的開源產品,用 Java 語言實現,在設計時參考了 Kafka,並做出了自己的一些改進,訊息可靠性上比 Kafka 更好。RocketMQ在阿里集團被廣泛應用在訂單,交易,充值,流計算,訊息推送,日誌流式處理,binglog分發等場景。
需要JAVA Spring Cloud大型企業分散式微服務雲構建的B2B2C電子商務平臺原始碼請加企鵝求求 :二一四七七七五六三三
RocketMQ的主要特性有:
是一個佇列模型的訊息中介軟體,具有高效能、高可靠、高實時、分散式特點; Producer、Consumer、佇列都可以分散式; Producer向一些佇列輪流傳送訊息,佇列集合稱為Topic,Consumer如果做廣播消費,則一個consumer例項消費這個Topic對應的所有佇列,如果做叢集消費,則多個Consumer例項平均消費這個topic對應的佇列集合; 能夠保證嚴格的訊息順序; 提供豐富的訊息拉取模式; 高效的訂閱者水平擴充套件能力; 實時的訊息訂閱機制; 億級訊息堆積能力; 較少的依賴;
RocketMQ的優點有: 單機支援 1 萬以上持久化佇列; RocketMQ 的所有訊息都是持久化的,先寫入系統 PAGECACHE,然後刷盤,可以保證記憶體與磁碟都有一份資料; 模型簡單,介面易用(JMS 的介面很多場合並不太實用); 效能非常好,可以大量堆積訊息在broker中; 支援多種消費,包括叢集消費、廣播消費等。 各個環節分散式擴充套件設計,主從HA;RocketMQ的缺點有:
支援的客戶端語言不多,目前是java及c++,其中c++不成熟; RocketMQ社群關注度及成熟度也不及前兩者; 沒有web管理介面,提供了一個CLI(命令列介面)管理工具帶來查詢、管理和診斷各種問題; 沒有在訊息佇列的核心部分實現JMS等介面;