RocketMQ-架構初探

簡介

RocketMQ是一款分佈式消息中間件,其設計基於主題的發佈與訂閱模式。功能包括消息發送、消息存儲、消息消費,參與的基本組件主要包括:消息發送者、消息服務器、消息消費、路由發現,分別對應RocketMQ集羣中包含的4個模塊: Producer、Broker、Consumer,Namesrv。

  • Producer: 消息生產者,負責生產消息。
  • Broker: 消息服務器,集羣最核心模塊,主要負責Topic消息存儲、消費者的消費位置管理(消費進度)。
  • Consumer: 消息消費者,負責消費消息。
  • Namesrv: 路由發現,存儲當前集羣所有Brokers信息、Topic跟Broker的對應關係。

架構

RocketMQ物理架構.png

集羣工作流程如下:

  1. 啓動NameServer,作爲路由控制中心,等待Broker、Produer、Consumer連接。
  2. Broker啓動,向所有NameServer註冊,註冊信息包含當前Broker信息(IP+端口等)以及所有topic信息。註冊成功後,namesrv集羣中就有Topic跟Broker的映射關係,並定時發送心跳包。
  3. Producer發送消息之前先從NameServer獲取Broker服務器地址列表,然後根據負載算法從列表中選擇一臺消息服務器進行消息發送。
  4. Consumer跟Producer類似,先從NameServer獲取當前訂閱Topic存在哪些Broker上,然後直接跟Broker建立連接通道,開始消費消息。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章