簡述RocketMQ系統架構及其相關概念

一、概述

RocketMQ是一款高性能、高吞吐量的分布式消息隊列系統,它采用了分布式架構,支持多生產者和消費者并發讀寫,具有高可用性、高吞吐量、低延遲等特點。本文將對RocketMQ的系統架構進行詳細解析。

請在此添加圖片描述

二、架構設計

RocketMQ采用了分布式架構,主要包括以下部分:

  1. NameServer集群:NameServer集群負責存儲和管理生產者和消費者的元數據信息,以及提供負載均衡和故障轉移功能。
  2. Broker集群:Broker集群負責存儲和轉發消息,以及提供負載均衡和故障轉移功能。每個Broker都有一個獨立的NameServer實例,用于與NameServer通信。
  3. 生產者集群:生產者集群負責向Broker投遞消息,以及提供負載均衡和故障轉移功能。生產者通過連接到NameServer獲取隊列的元數據信息,然后將消息發送到指定的隊列中。
  4. 消費者集群:消費者集群負責從Broker中拉取消息并進行處理,以及提供負載均衡和故障轉移功能。消費者通過連接到NameServer獲取隊列的元數據信息,然后從指定的隊列中拉取消息。

請在此添加圖片描述

?

三、相關概念

消息(Message)

傳輸最小單元

主題(Topic)

有點類似RabbitMQ的交換機。一類消息的集合,RocketMQ消息訂閱基本單位。每個主題包含若干消息,每條消息只能屬于一個主題。

標簽(Tag)

有點類似RabbitMQ的路由鍵,為主題設置不同的標簽,同一個工程不同業務,不同標簽

eg:

Topic:product-servicetag:price、stock消費者可以監聽主題product-service,不同tag消息

隊列(Queue)

存放消息。一個主題多個隊列(分區)

注意:一個Topic的隊列中消息只能被一個消費組的的的一個消費者消費。不允許同個消費者組的多個消費者消費

消息標識(MessageId/Key)

RocketMQ中每個消息擁有唯一的MessageId,且可以攜帶具有業務標識的Key,以方便對消息的查詢

Name Server(類似注冊中心)

NameServer是一個Broker與Topic路由的注冊中心,支持Broker的動態注冊與發現。

主要兩個功能:

Broker管理:維護broke信息,位置心跳,檢查B榮可人是否存活

路由信息管理:Producer和Conumser通過NameServer獲取整個Broker集群的路由信息,從而進行消息的投遞和消費

?

四、總結

RocketMQ采用分布式架構,包括NameServer、Broker、Producer和Consumer等核心組件。NameServer負責存儲和管理生產者和消費者的元數據信息,Broker負責消息的存儲、轉發、持久化等功能,Producer負責向Broker投遞消息,Consumer負責從Broker中拉取消息并進行處理。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/11809.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/11809.shtml
英文地址,請注明出處:http://en.pswp.cn/web/11809.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

入門物聯網就是這么簡單——青創智通

工業物聯網解決方案-工業IOT-青創智通 MQTT,全稱為Message Queuing Telemetry Transport,是一種輕量級的發布/訂閱消息傳輸協議,廣泛應用于物聯網領域。 MQTT協議以其高效、可靠、靈活的特性,成為物聯網設備間通信的理想選擇。本…

升級版ComfyUI InstantID 換臉:FaceDetailer + InstantID + IP-Adapter

在使用ComfyUI的InstantID進行人臉替換時,一個常見問題是該工具傾向于保留原始參考圖的構圖,即使用戶的提示詞與之不符。 例如,即使用戶提供的是大頭照并請求生成全身照,結果仍是大頭照,沒有顯示出用戶所期望的構圖。…

MySQL_DDL語句

1.Data類臨時數據的弊端 我們之前在將ServletJSP配合處理請求的過程中 數據庫起到一個存取數據的作用 但是我們之前的案例中 數據是在Data類中臨時定義的 并不是從數據庫中獲取的 這樣做是不好的 因為每一次服務器關閉之后 那么部署在其上的類也會隨著卸載 緊接著和類相掛鉤的靜…

基于C#開發web網頁管理系統模板流程-登錄界面

前言,首先介紹一下本項目將要實現的功能 (一)登錄界面 實現一個不算特別美觀的登錄窗口,當然這一步跟開發者本身的設計美學相關,像蒟蒻博主就沒啥藝術細胞,勉強能用能看就行…… (二&#xff09…

使用Tkinter開發Python棋盤游戲

使用 Tkinter 開發一個簡單的棋盤游戲是很有趣的!下面是一個示例,演示如何使用 Tkinter 創建一個簡單的五子棋游戲:這個是我通過幾個夜晚整理出來的解決方案和實際操作教程。 1、問題背景 目標是開發一個 Python 棋盤游戲,玩家可…

web測試中,各類web控件測試點總結

一、界面檢查 進入一個頁面測試,首先是檢查title,頁面排版,字段等,而不是馬上進入文本框校驗 1、頁面名稱title是否正確 2、當前位置是否可見 您的位置:xxx>xxxx 3、文字格式統一性 4、排版是否整齊 5、列表項…

【--ckpt_save_interval 1 -- sync_bn】

在深度學習和機器學習的上下文中,–ckpt_save_interval 1 和 --sync_bn 是命令行參數,它們通常用于配置訓練過程。 不過,這兩個參數并不是所有框架或工具都通用的,但我可以根據常見的用法來解釋它們。 --ckpt_save_interval 1這…

人力資源管理:員工體驗平臺設計

員工體驗是員工的感受,是員工作為企業一份子觀察到、感受到和與之互動的一切,包含企業為員工提供的物質條件、人文環境等各方面的內容。 是在工作過程中接觸到的所有接觸點所產生的對自己與用人單位關系的整體感知,員工體驗從員工入職開始貫…

使用Go和JavaScript爬取股吧動態信息的完整指南

引言 在現代金融生態系統中,信息流動的速度和效率對于市場的健康和投資者的成功至關重要。股市信息,特別是來自活躍交流平臺如股吧的實時數據,為投資者提供了一個獨特的視角,幫助他們洞察市場趨勢和投資者情緒。這些信息不僅能夠…

【MySQL】分組排序取每組第一條數據

需求:MySQL根據某一個字段分組,然后組內排序,最后每組取排序后的第一條數據。 準備表: CREATE TABLE t_student_score (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,stu_name varchar(32) NOT NULL COMMENT 學生姓名,course…

NumPy常用操作

目錄 一:簡介 二:NumPy 常用操作 三:總結 一:簡介 是一個開源的Python庫,它為Python提供了強大的多維數組對象和用于處理這些數組的函數。NumPy的核心是ndarray,它是一個高效的多維數組容器,用…

力扣【旋轉函數】python

如果直接用暴力的話,只能過4個樣例好像,超時 因此得用遞推公式 F1F0前n-1個數-(n-1)*第n個數 F0sum(nums)-n*第n個數 nlen(nums) ans[]#定義一個存最大值值的列表 ss sum(nums) dm 0 for j in range(n):dm j * nums[j] ans.append(dm) print(dm) n…

springmvc返回json

springmvc返回json 現在很多項目已經前后端分離了,不再使用jsp或者使用jsp但是數據使用ajax來獲取,實現局部刷新的效果,那么springmvc中如何不返回頁面而返回頁面所需要的數據呢。 前后端數據交互現在大多使用json來表示(當然有一部分還是使用…

面試中的算法(查找缺失的整數)

在一個無序數組里有99個不重復的正整數,范圍是1~100,唯獨缺少1個1~100中的整數。如何找出這個缺失的整數? 一個很簡單也很高效的方法,先算出1~100之和,然后依次減去數組里的元素,最后得到的差值,就是那個缺…

目標檢測YOLO實戰應用案例100講-基于深度學習的無人機航拍圖像目標檢測算法研究與應用(中)

目錄 4.2旋轉角度 4.3數據集預處理 4.4旋轉框網絡結構設計 4.5實驗結果與分析

集合系列(二十五) -二叉樹、平衡二叉樹、紅黑樹性能總結

一、摘要 二叉樹,作為一種數據結構,在實際開發中,有著非常廣泛的應用,尤其是以平衡二叉樹、紅黑樹為代表,在前幾篇文章中,我們詳細的介紹了BST、AVL、RBT的算法以及代碼實踐,下面簡要概括描述一…

deveco studio 打開官方案例,不顯示運行按鈕。

就拿官方的search舉例好了 git 地址 https://gitee.com/harmonyos/samples/tree/master/ETSUI/Search 使用deveco studio打開Search項目,打開Tools->Device-Manager中的Local Emulator本地模擬器, 此時會發現,運行按鈕是灰色的&#xff0…

水利行業工程設計資質如何去申請

申請水利行業工程設計資質通常需要按照以下步驟進行: 事前準備: 制定材料清單,羅列出所需準備的文件。下載相關的申請表和模板。準備企業資料和人員資料等附件材料。人員要求: 確保企業擁有符合水利行業工程設計資質標準要求的注…

源碼 axios 的創建過程模擬實現

1、在實例對象上添加兩個屬性:default(默認配置) 與 interscptors // //構造函數function Axios(config) {//初始化this.defaults config;//為了創建 default 默認屬性this.interceptors {request: {},response: {}}} 2、在原型對象上添加方法 //原型添加相關的…

從零學算法994

994. 腐爛的橘子 在給定的 m x n 網格 grid 中,每個單元格可以有以下三個值之一: 值 0 代表空單元格; 值 1 代表新鮮橘子; 值 2 代表腐爛的橘子。 每分鐘,腐爛的橘子 周圍 4 個方向上相鄰 的新鮮橘子都會腐爛。 返回 直…