RocketMQ的架構(gòu)原理和使用

1.核心概念

  • 生產(chǎn)者Producer
    負(fù)責(zé)生產(chǎn)消息,一般由業(yè)務(wù)系統(tǒng)負(fù)責(zé)生產(chǎn)消息。一個(gè)消息生產(chǎn)者會(huì)把業(yè)務(wù)應(yīng)用系統(tǒng)里產(chǎn)生的消息發(fā)送到broker服務(wù)器。RocketMQ提供多種發(fā)送方式,同步發(fā)送、異步發(fā)送、順序發(fā)送、單向發(fā)送。同步和異步方式均需要Broker返回確認(rèn)信息,單向發(fā)送不需要。
  • 消費(fèi)者Consumer
    負(fù)責(zé)消費(fèi)消息,一般是后臺(tái)系統(tǒng)負(fù)責(zé)異步消費(fèi)。一個(gè)消息消費(fèi)者會(huì)從Broker服務(wù)器拉取消息、并將其提供給應(yīng)用程序。從用戶應(yīng)用的角度而言提供了兩種消費(fèi)形式:拉取式消費(fèi)、推動(dòng)式消費(fèi)。
  • 名字服務(wù)Name Server
    名稱服務(wù)充當(dāng)路由消息的提供者。生產(chǎn)者或消費(fèi)者能夠通過名字服務(wù)查找各主題相應(yīng)的Broker IP列表。多個(gè)Namesrv實(shí)例組成集群,但相互獨(dú)立,沒有信息交換。
  • 代理服務(wù)器Broker Server
    消息中轉(zhuǎn)角色,負(fù)責(zé)存儲(chǔ)消息、轉(zhuǎn)發(fā)消息。代理服務(wù)器在RocketMQ系統(tǒng)中負(fù)責(zé)接收從生產(chǎn)者發(fā)送來的消息并存儲(chǔ)、同時(shí)為消費(fèi)者的拉取請(qǐng)求作準(zhǔn)備。代理服務(wù)器也存儲(chǔ)消息相關(guān)的元數(shù)據(jù),包括消費(fèi)者組、消費(fèi)進(jìn)度偏移和主題和隊(duì)列消息等。
  • 消息內(nèi)容Message
    消息系統(tǒng)所傳輸信息的物理載體,生產(chǎn)和消費(fèi)數(shù)據(jù)的最小單位,每條消息必須屬于一個(gè)主題。RocketMQ中每個(gè)消息擁有唯一的Message ID,且可以攜帶具有業(yè)務(wù)標(biāo)識(shí)的Key。系統(tǒng)提供了通過Message ID和Key查詢消息的功能。
  • 消息主題Topic
    表示一類消息的集合,每個(gè)主題包含若干條消息,每條消息只能屬于一個(gè)主題,是RocketMQ進(jìn)行消息訂閱的基本單位。
  • 標(biāo)簽Tag
    為消息設(shè)置的標(biāo)志,用于同一主題下區(qū)分不同類型的消息。來自同一業(yè)務(wù)單元的消息,可以根據(jù)不同業(yè)務(wù)目的在同一主題下設(shè)置不同標(biāo)簽。標(biāo)簽?zāi)軌蛴行У乇3执a的清晰度和連貫性,并優(yōu)化RocketMQ提供的查詢系統(tǒng)。消費(fèi)者可以根據(jù)Tag實(shí)現(xiàn)對(duì)不同子主題的不同消費(fèi)邏輯,實(shí)現(xiàn)更好的擴(kuò)展性。
  • 消息隊(duì)列MessageQueue
    對(duì)于每個(gè)Topic都可以設(shè)置一定數(shù)量的消息隊(duì)列用來進(jìn)行數(shù)據(jù)的讀

2.架構(gòu)原理

架構(gòu)原理圖.png

RocketMQ包含四個(gè)核心部分
1.NameServer,負(fù)責(zé)去管理集群里所有Broker的信息,讓使用MQ的系統(tǒng)可以通過他感知到集群里有哪些Broker。
2.Broker集群本身,必須在多臺(tái)機(jī)器上進(jìn)行集群部署,而且還得用主從架構(gòu)實(shí)現(xiàn)數(shù)據(jù)多副本存儲(chǔ)和高可用。
3.向MQ發(fā)送消息的生產(chǎn)者系統(tǒng),從NameServer拉取路由信息,選擇Broker機(jī)器建立連接發(fā)送消息
4.從MQ獲取消息的那些系統(tǒng),這些系統(tǒng)一般稱之為消費(fèi)者。

最后編輯于
?著作權(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)容

  • 核心概念 根據(jù)上述模型,我們可以深入探討有關(guān)消息傳遞系統(tǒng)設(shè)計(jì)的一些主題: 消費(fèi)者并發(fā) 消費(fèi)者熱點(diǎn)問題 消費(fèi)者負(fù)載平...
    恨別A鳥驚心閱讀 764評(píng)論 0 0
  • 本文英文原文來自RocketMQ官方核心概念文檔 根據(jù)上面的模型,我們能夠深入消息系統(tǒng)設(shè)計(jì)中的某些主題: 并行消費(fèi)...
    陳晨_軟件五千言閱讀 595評(píng)論 0 1
  • 根據(jù)上面的模型,我們可以深入研究一些關(guān)于消息系統(tǒng)設(shè)計(jì)的主題: 消費(fèi)者并發(fā)性 消費(fèi)者熱點(diǎn)問題 消費(fèi)者負(fù)載均衡 消息路...
    Kohler閱讀 2,333評(píng)論 1 4
  • RocketMQ 是阿里巴巴開源的分布式消息中間件。 RocketMQ 特點(diǎn) 是一個(gè)隊(duì)列模型的消息中間件,具有高性...
    又語閱讀 5,622評(píng)論 1 3
  • 本系列博客主要是以學(xué)習(xí)官方文檔為主 基本概念 1.消息模型 RocketMQ主要由 Producer、Broker...
    nhw的技術(shù)站點(diǎn)閱讀 659評(píng)論 0 0

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