《RocketMQ技術內幕:RocketMQ架構設計與實現原理》是2018年機械工業出版社出版的圖書。
基本介紹
- 中文名:RocketMQ技術內幕:RocketMQ架構設計與實現原理
- 作者:丁威、周繼鋒
- 出版社:機械工業出版社
- 出版時間:2018年
- ISBN:9787111614210
【本書已更新至第2版】
本書由RocketMQ社區早期的布道者和技術專家撰寫,Apache RocketMQ創始人/Linux OpenMessaging創始人兼主席/Alibaba Messaging開源技術負責人馮嘉的高度評價並作序推薦。
源碼角度,本書對RocketMQ的核心技術架構,以及訊息傳送、訊息存儲、訊息消費、訊息過濾、順序訊息、主從同步(HA)、事務訊息等主要功能模組的實現原理進行了深入分析,同時展示了源碼閱讀的相關技巧;套用層面,本書總結了大量RocketMQ的使用技巧。通過本書,讀者將深入理解訊息中間件和底層網路通訊機制的核心知識點。
全書共10章,分三個部分:
*部分 準備篇(第1章)
首先介紹了RocketMQ原始碼的獲取、結構和調試,然後介紹了RocketMQ的設計理念和目標。
第二部分 實現篇(第2~8章)
目錄
推薦序
前言
第1章 閱讀原始碼前的準備 1
1.1 獲取和調試RocketMQ的原始碼 1
1.1.1 Eclipse獲取RocketMQ源碼 2
1.1.2 Eclipse調試RocketMQ源碼 9
1.1.3 IntelliJ IDEA獲取RocketMQ源碼 15
1.1.4 IntelliJ IDEA調試RocketMQ源碼 20
1.2 RocketMQ原始碼的目錄結構 27
1.3 RocketMQ的設計理念和目標 28
1.3.1 設計理念 28
1.3.2 設計目標 28
第2章 RocketMQ路由中心NameServer 31
2.1 NameServer架構設計 31
2.2 NameServer啟動流程 32
2.3 NameServer路由註冊、故障剔除 36
2.3.1 路由元信息 36
2.3.2 路由註冊 38
2.3.3 路由刪除 43
2.3.4 路由發現 46
2.4 本章小結 47
第3章 RocketMQ訊息傳送 49
3.1 漫談RocketMQ訊息傳送 49
3.2 認識RocketMQ訊息 50
3.3 生產者啟動流程 51
3.3.1 初識DefaultMQProducer訊息傳送者 51
3.3.2 訊息生產者啟動流程 54
3.4 訊息傳送基本流程 56
3.4.1 訊息長度驗證 56
3.4.2 查找主題路由信息 56
3.4.3 選擇訊息佇列 60
3.4.4 訊息傳送 65
3.5 批量訊息傳送 71
3.6 本章小結 74
第4章 RocketMQ訊息存儲 75
4.1 存儲概要設計 75
4.2 初識訊息存儲 76
4.3 訊息傳送存儲流程 78
4.4 存儲檔案組織與記憶體映射 83
4.4.1 MappedFileQueue映射檔案佇列 84
4.4.2 MappedFile記憶體映射檔案 87
4.4.3 TransientStorePool 93
4.5 RocketMQ存儲檔案 94
4.5.1 Commitlog檔案 95
4.5.2 ConsumeQueue檔案 97
4.5.3 Index索引檔案 100
4.5.4 checkpoint檔案 104
4.6 實時更新訊息消費佇列與索引檔案 105
4.6.1 根據訊息更新ConumeQueue 107
4.6.2 根據訊息更新Index索引檔案 108
4.7 訊息佇列與索引檔案恢復 109
4.7.1 Broker正常停止檔案恢復 112
4.7.2 Broker異常停止檔案恢復 114
4.8 檔案刷盤機制 115
4.8.1 Broker同步刷盤 116
4.8.2 Broker異步刷盤 119
4.9 過期檔案刪除機制 122
4.10 本章小結 126
第5章 RocketMQ訊息消費 127
5.1 RocketMQ訊息消費概述 127
5.2 訊息消費者初探 128
5.3 消費者啟動流程 130
5.4 訊息拉取 133
5.4.1 PullMessageService實現機制 133
5.4.2 ProcessQueue實現機制 136
5.4.3 訊息拉取基本流程 138
5.5 訊息佇列負載與重新分布機制 154
5.6 訊息消費過程 162
5.6.1 訊息消費 163
5.6.2 訊息確認(ACK) 167
5.6.3 消費進度管理 171
5.7 定時訊息機制 176
5.7.1 load方法 177
5.7.2 start方法 178
5.7.3 定時調度邏輯 179
5.8 訊息過濾機制 181
5.9 順序訊息 186
5.9.1 訊息佇列負載 187
5.9.2 訊息拉取 187
5.9.3 訊息消費 188
5.9.4 訊息佇列鎖實現 195
5.10 本章小結 196
第6章 訊息過濾FilterServer 198
6.1 ClassFilter運行機制 198
6.2 FilterServer註冊剖析 199
6.3 類過濾模式訂閱機制 202
6.4 訊息拉取 205
6.5 本章小結 206
第7章 RocketMQ主從同步(HA)機制 207
7.1 RocketMQ主從複製原理 207
7.1.1 HAService整體工作機制 208
7.1.2 AcceptSocketService實現原理 208
7.1.3 GroupTransferService實現原理 210
7.1.4 HAClient實現原理 211
7.1.5 HAConnection實現原理 214
7.2 RocketMQ讀寫分離機制 220
7.3 本章小結 223
第8章 RocketMQ事務訊息 225
8.1 事務訊息實現思想 225
8.2 事務訊息傳送流程 226
8.3 提交或回滾事務 232
8.4 事務訊息回查事務狀態 233
8.5 本章小結 240
第9章 RocketMQ實戰 242
9.1 訊息批量傳送 242
9.2 訊息傳送佇列自選擇 243
9.3 訊息過濾 243
9.3.1 TAG模式過濾 244
9.3.2 SQL表達模式過濾 244
9.3.3 類過濾模式 245
9.4 事務訊息 247
9.5 Spring整合RocketMQ 250
9.6 Spring Cloud整合RocketMQ 251
9.7 RocketMQ監控與運維命令 258
9.7.1 RocktetMQ監控平台搭建 258
9.7.2 RocketMQ管理命令 261
9.8 套用場景分析 280
9.9 本章小結 281
附錄A 參數說明 282