rocketmq技術架構圖


NameServer、Broker、Producer、Consumer之間如何進行通信,如何工作:

 

NameServer和Broker:

NameServer主要做兩件事情,第一就是管理Broker,接受來自Broker集群發送的注冊,

以及提供心跳機制來檢查我們的Broker是否還存活。第二件事情就是管理路由信息,

每一個NameServer都存儲有路由信息和隊列信息,提供給Producer和Consumer查詢。

 

Broker主要負責消息的存儲和傳遞,消息查詢等。主要包含遠程模塊、客戶端管理、存儲服務、HA服務和索引服務。

 

Broker(不管是Master還是Slave)和每一台NameServer機器來建立TCP連接。

Broker在啟動的時候調用BrokerController中start方法,獲取遠程nameServerAddressList(遠程NameServer服務列表),

Broker對nameServerAddressList進行for循環處理,注冊自己配置的topic信息到NameServer集群的每一台機器中。

即每一台NameServer都有該Broker的topic的配置信息。Master與Master之間無連接,Master與Slave之間有連接。

Producer和NameServer:

每一個Producer與NameServer集群中的一台機器建立TCP連接,從這台NameServer上拉取路由信息。

 

Producer和broker:

Producer和它要發送的topic相關的Master類型的Broker建立TCP連接,用於發送消息以及定時的心跳信息。

Broker中記錄該Producer的信息,供查詢使用。

 

Consumer和NameServer:

每一個Consumer會和NameServer集群中的一台機器建立TCP連接,會從這台NameServer上拉取路由信息,進行負載均衡。

Consumer和Broker:

Consumer可以與Master或者Slave的Broker建立TCP連接來進行消費消息,Consumer也會向它所消費的Broker發送心跳信息,供Broker記錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM