RocketMQ最全詳解(圖文全面總結)
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
消息中間件是億級互聯網架構的基石,其中最典型有“RocketMQ”消息中間件,大廠最愛考察的內容,下面我就全面來詳解。 RocketMQRocketMQ是一款開源的分布式消息中間件,具有高吞吐量、低延遲和高可靠性的特點。 主要解決,如下4大場景: 1、應用解耦 通過消息隊列將生產者、和消費者解耦,比如:電商平臺中,用戶下單后,物流服務...等,可以通過消息隊列解耦,彼此獨立處理自己的業務邏輯。 2、異步通信 在系統間傳遞消息時,生產者發送消息后,不需要立即等待消費者處理完畢,而是可以繼續執行其他操作,這樣可以提高系統的響應速度、和吞吐量。 3、削峰填谷 最典型的就是:阿里雙11,秒殺活動中,用戶的搶購請求通過消息隊列暫存,這就是典型的“削峰填谷”,避免因為瞬時高并發導致數據庫壓力過大。 4、消息廣播 支持消息的多播,便于實現通知、和廣播功能,比如:系統監控報警,當發現系統異常時,報警消息通過消息隊列廣播多個。 RocketMQ原理RocketMQ架構RocketMQ架構,如下圖所示: RocketMQ架構:主要由NameServer、Broker、Producer以及Consumer四部分構成。 1.NameServer 提供命名服務,負責管理Topic和Broker的元數據信息。 要包括兩個功能,如下圖所示: 1)Broker管理
2)路由信息管理 每個NameServer將保存關于Broker集群的整個路由信息,Producer和Conumser通過NameServer,就可以知道整個Broker集群的路由信息,從而進行消息的投遞和消費。 2.Broker 消息中間件的服務器,負責存儲和傳遞消息。 如下圖所示: Broker的核心功能包含:
3.Producer 消息的生產者,負責發送消息到Broker。 生產者發送消息時,先與Namesrv交互獲取Broker信息,然后與Broker建立連接發送消息。 如下圖所示:
4.Consumer 消息的消費者,負責從Broker訂閱并消費消息。 如下圖所示: 消費者通過與Namesrv交互獲取Broker信息,并根據主題和隊列進行消息訂閱。 消費者從Broker拉取消息進行消費,可以設置消費模式(順序消費或并發消費)和消費進度。 5.消息存儲RocketMQ采用順序寫磁盤的方式持久化消息,以保證高吞吐量和消息的持久性。 消息存儲在CommitLog文件中,其中包含了消息的主題、標簽、屬性等信息。 消息索引存儲在Index文件中,用于快速查找消息。 6.消息的順序性保證RocketMQ支持順序消費,在同一個隊列上的消息按照發送順序被消費。 對于全局有序的場景,可以將消息發送到同一個隊列中。 對于局部有序的場景,可以將消息發送到多個隊列中,并在消費端根據消息的某個關鍵屬性進行排序。 7.高可用和容錯性RocketMQ通過主從復制機制實現高可用性和容錯性。 Broker集群中的每個主節點都有相應的備份節點,當主節點出現故障時,備份節點可以接管服務。 Namesrv也可以配置為集群模式,提供高可用性和容錯性。 8.消息的事務性RocketMQ支持消息的事務性,允許生產者發送帶有事務標記的消息。 生產者發送事務消息時,會先執行本地事務,然后根據事務結果提交或回滾消息。 事務消息的狀態和進度由Broker和生產者共同管理和維護。 閱讀原文:原文鏈接 該文章在 2025/7/2 0:15:44 編輯過 |
關鍵字查詢
相關文章
正在查詢... |