原创 源碼分析 RocketMQ DLedger(多副本) 之日誌複製(傳播)

目錄 1、DLedgerEntryPusher 1.1 核心類圖 1.2 構造方法 1.3 startup 2、EntryDispatcher 詳解 2.1 核心類圖 2.2 Push 請求類型 2.3 doWork 方法詳解 3

原创 RocketMQ 主題擴分片後遇到的坑

目錄 1、案情回顧 1.1 集羣現狀 1.2、RocketMQ 在線擴容隊列 1.3 消息發送 2、問題暴露 3、問題分析 4、問題覆盤 消息組接到某項目組反饋,topic 在擴容後出現部分隊列無法被消費者,導致消息積壓,影響

原创 源碼分析 RocketMQ DLedger 多副本存儲實現

目錄 1、DLedger 存儲相關類圖 1.1 DLedgerStore 1.2 DLedgerMemoryStore 1.3 DLedgerMmapFileStore 2、DLedger 存儲 對標 RocketMQ 存儲 3、D

原创 源碼分析 RocketMQ DLedger 多副本之 Leader 選主

目錄 1、DLedger關於選主的核心類圖 1.1 DLedgerConfig 1.2 MemberState 1.3 raft協議相關 1.4 DLedgerRpcService 1.5 DLedgerLeaderElector 1

原创 RocketMQ 多副本前置篇:初探raft協議

目錄 1、Leader選舉 1.1 一輪投票中,只有一個節點發起投票的情況 1.2 一輪投票中,超過一個節點發起投票的情況 1.3 思考如何實現Raft選主 2、日誌複製 Raft協議是分佈式領域解決一致性的又一著名協議,主要

原创 源碼分析RocketMQ消息軌跡

目錄 1、發送消息軌跡流程 1.1 DefaultMQProducer構造函數 1.2 SendMessageTraceHookImpl鉤子函數 1.3 TraceDispatcher實現原理 2、 消息軌跡數據如何存儲 2.1 使

原创 RocketMQ消息軌跡-設計篇

目錄 1、消息軌跡數據格式 2、記錄消息軌跡 3、如何存儲消息軌跡數據 @(本節目錄) RocketMQ消息軌跡主要包含兩篇文章:設計篇與源碼分析篇,本節將詳細介紹RocketMQ消息軌跡-設計相關。 RocketMQ消息軌跡,

原创 源碼分析RocketMQ ACL實現機制

目錄 1、BrokerController#initialAcl 2、PlainAccessValidator 2.1 類圖 2.2 構造方法 2.3 parse方法 2.4 validate 方法 3、PlainPermissio

原创 RocketMQ ACL使用指南

目錄 1、什麼是ACL? 2、ACL基本流程圖 3、如何配置ACL 3.1 acl配置文件 3.2 RocketMQ ACL權限可選值 3.3、權限驗證流程 4、使用示例 4.1 Broker端安裝 4.2 消息發送端示例 4.3

原创 RocketMQ實戰:生產環境中,autoCreateTopicEnable爲什麼不能設置爲true

1、現象 很多網友會問,爲什麼明明集羣中有多臺Broker服務器,autoCreateTopicEnable設置爲true,表示開啓Topic自動創建,但新創建的Topic的路由信息只包含在其中一臺Broker服務器上,這是爲什麼呢? 期望

原创 RocketMQ 消息發送system busy、broker busy原因分析與解決方案

目錄 1、現象 2、原理解讀 2.1 RocketMQ 網絡處理機制概述 2.2 pair.getObject1().rejectRequest() 2.3 漫談transientStorePoolEnable機制 2.3.1 Map

原创 RocketMQ 主從同步若干問題答疑

目錄 1、初識主從同步 2、提出問題 3、原理探究 3.1 RocketMQ主從讀寫分離機制 3.2 消息消費進度同步機制 4、總結 溫馨提示:建議參考代碼RocketMQ4.4版本,4.5版本引入了多副本機制,實現了主從自