您好,登錄后才能下訂單哦!
這篇文章主要介紹RocketMQ架構上主要分為幾個部分,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
技術架構
RocketMQ架構上主要分為四部分,如上圖所示:
Producer:消息發布的角色,支持分布式集群方式部署。Producer通過MQ的負載均衡模塊選擇相應的Broker集群隊列進行消息投遞,投遞的過程支持快速失敗并且低延遲。
Consumer:消息消費的角色,支持分布式集群方式部署。支持以push推,pull拉兩種模式對消息進行消費。同時也支持集群方式和廣播方式的消費,它提供實時消息訂閱機制,可以滿足大多數用戶的需求。
NameServer:NameServer是一個非常簡單的Topic路由注冊中心,其角色類似Dubbo中的zookeeper,支持Broker的動態注冊與發現。主要包括兩個功能:Broker管理,NameServer接受Broker集群的注冊信息并且保存下來作為路由信息的基本數據。然后提供心跳檢測機制,檢查Broker是否還存活;路由信息管理,每個NameServer將保存關于Broker集群的整個路由信息和用于客戶端查詢的隊列信息。然后Producer和Conumser通過NameServer就可以知道整個Broker集群的路由信息,從而進行消息的投遞和消費。NameServer通常也是集群的方式部署,各實例間相互不進行信息通訊。Broker是向每一臺NameServer注冊自己的路由信息,所以每一個NameServer實例上面都保存一份完整的路由信息。當某個NameServer因某種原因下線了,Broker仍然可以向其它NameServer同步其路由信息,Producer,Consumer仍然可以動態感知Broker的路由的信息。
BrokerServer:Broker主要負責消息的存儲、投遞和查詢以及服務高可用保證。
其中Broker,為了實現這些功能,包含了以下幾個重要子模塊。
Remoting Module:整個Broker的實體,負責處理來自clients端的請求。
Client Manager:負責管理客戶端(Producer/Consumer)和維護Consumer的Topic訂閱信息
Store Service:提供方便簡單的API接口處理消息存儲到物理硬盤和查詢功能。
HA Service:高可用服務,提供Master Broker 和 Slave Broker之間的數據同步功能。
Index Service:根據特定的Message key對投遞到Broker的消息進行索引服務,以提供消息的快速查詢。
以上是“RocketMQ架構上主要分為幾個部分”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。