rocketMQ基本入門介紹

1、RocketMQ 簡(jiǎn)介:

?RocketMQ前身是阿里研發(fā)的一個(gè)隊(duì)列模型的消息中間件,后開(kāi)源給apache基金會(huì)成為了apache的頂級(jí)開(kāi)源項(xiàng)目,具有高性能、高可靠、高實(shí)時(shí)、分布式特點(diǎn)。

2、RocketMQ基本架構(gòu):

RocketMQ基本架構(gòu).png


如圖所示RocketMQ架構(gòu)上主要分為四部分:

Producer:

? ? ? ?充當(dāng)消息發(fā)布的角色,支持分布式集群方式部署。producer通過(guò)MQ的負(fù)載均衡模塊選擇相應(yīng)的Broker集群隊(duì)列進(jìn)行消息投遞。投遞的過(guò)程支持快速失敗并且低延遲。

Consumer:

? ? ? 充當(dāng)消息消費(fèi)者的角色,支持分布式集群方式部署。支持以push推,pull拉兩種模式對(duì)消息進(jìn)行消費(fèi)。同時(shí)也支持集群方式和廣播形式的消費(fèi),它提供實(shí)時(shí)消息訂閱機(jī)制,可以滿足大多數(shù)用戶的需求。

NameServer:

? ? ? NameServer是一個(gè)功能齊全的服務(wù)器,其角色類似dubbo中的zookeeper,支持Broker的動(dòng)態(tài)注冊(cè)與發(fā)現(xiàn)。主要包括兩個(gè)功能:

? ? ?1、Broker管理。NameServer接受Broker集群的注冊(cè)信息并且保存下來(lái)作為路由信息的基本數(shù)據(jù)。然后提供心跳檢測(cè)機(jī)制,檢查Broker是否還存活。?

? ? 2?、路由信息管理。每個(gè)NameServer將保存關(guān)于Broker集群的整個(gè)路由信息和用于客戶端查詢的隊(duì)列信息。然后Producer和Conumser通過(guò)NameServer就可以知道整個(gè)Broker集群的路由信息,從而進(jìn)行消息的投遞和消費(fèi)。

? ? ?NameServer通常也是集群的方式部署,各實(shí)例間相互不進(jìn)行信息通訊。Broker是向每一臺(tái)NameServer注冊(cè)自己的路由信息,所以每一個(gè)NameServer實(shí)例上面都保存一份完整的路由信息。當(dāng)某個(gè)NameServer因某種原因下線了,Broker仍然可以向其它NameServer同步其路由信息,Produce,Consumer仍然可以動(dòng)態(tài)感知Broker的路由的信息。

配置NameServer:

? ?代碼方式:producer.setNamesrvAddr("ip:port"); consumer.setNamesrvAddr("ip:port");多個(gè)實(shí)例的NameServer以";'分割。

? ?java 配置:rocketmq.namesrv.addr

? 操作系統(tǒng)環(huán)境變量:?NAMESRV_ADDR

? HTTP Endpoint.

Broker Server:

? ? broker主要負(fù)責(zé)消息的存儲(chǔ)、投遞和查詢以及服務(wù)高可用保證。為了實(shí)現(xiàn)這些功能broker包含了以下幾個(gè)重要子模塊。

? ?Remoting Module:整個(gè)broker的實(shí)體,負(fù)責(zé)處理來(lái)自clients端的請(qǐng)求。

? ?Client Manager:負(fù)責(zé)管理客戶端(Producer/Consumer)和維護(hù)Consumer的topic訂閱信息

? ??Store Service:提供方便簡(jiǎn)單的API接口處理消息存儲(chǔ)到物理硬盤和查詢功能。

? ??HA Service:高可用服務(wù),提供master broker 和 slave broker之間的數(shù)據(jù)同步功能。

? ? Index Service:根據(jù)特定的Message key對(duì)投遞到broker的消息進(jìn)行索引服務(wù),以提供消息的快速查詢。

broker-module.png



以上的內(nèi)容只是對(duì)roketMQ進(jìn)行一些基本的入門簡(jiǎn)介,后面會(huì)有相關(guān)的文章對(duì)具體的內(nèi)容進(jìn)行更深入的討論,也歡迎大家提出寶貴的意見(jiàn)和發(fā)表自己的見(jiàn)解。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容