3dwoo大學簡體電腦書店
RocketMQ分布式消息中間件:核心原理與最佳實踐
( 簡體 字)
作者:李偉類別:1. -> 程式設計 -> 綜合
出版社:電子工業出版社RocketMQ分布式消息中間件:核心原理與最佳實踐 3dWoo書號: 53225
詢問書籍請說出此書號!
有庫存
NT售價: 395
出版日:7/1/2020
頁數:276
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121392672 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章 RoketMQ綜述 1
1.1 什么是消息隊列 2
1.2 為什么需要消息隊列 4
1.2.1 削峰填谷 4
1.2.2 程序間解耦 5
1.2.3 異步處理 6
1.2.4 數據的最終一致性 6
1.3 常見消息隊列 7
1.4 RocketMQ的發展史與未來 9
1.4.1 RocketMQ的發展史 9
1.4.2 Apache RocketMQ的未來 11
第2章 RocketMQ的生產者原理和最佳實踐 14
2.1 生產者原理 15
2.1.1 生產者概述 15
2.1.2 消息結構和消息類型 16
2.1.3 生產者高可用 17
2.2 生產者啟動流程 22
2.3 消息發送流程 32
2.4 發送消息最佳實踐 36
2.4.1 發送普通消息 36
2.4.2 發送順序消息 37
2.4.3 發送延遲消息 37
2.4.4 發送事務消息 38
2.4.5 發送單向消息 40
2.4.6 批量消息發送 41
2.5 生產者最佳實踐總結 42
第3章 RocketMQ的消費流程和最佳實踐 44
3.1 消費者概述 45
3.1.1 消費流程 45
3.1.2 消費模式 46
3.1.3 可靠消費 48
3.2 消費者啟動機制 50
3.3 消費者的Rebalance機制 58
3.4 消費進度保存機制 65
3.5 消費方式 70
3.5.1 Pull消費流程 71
3.5.2 Push消費流程 72
3.6 消息過濾 86
3.6.1 為什么要設計過濾功能 86
3.6.2 RocketMQ支持消息過濾 86
3.7 消費者最佳實踐總結 91
第4章 RocketMQ架構和部署最佳實踐 94
4.1 RocketMQ架構 95
4.2 常用的部署拓撲和部署實踐 96
4.2.1 常用的拓撲圖 96
4.2.2 同步復制、異步復制和同步刷盤、異步刷盤 97
4.2.3 部署實踐 98
第5章 Namesrv 102
5.1 Namesrv概述 103
5.1.1 什么是Namesrv 103
5.1.2 Namesrv核心數據結構和API 103
5.1.3 Namesrv和Zookeeper 105
5.2 Namesrv架構 106
5.2.1 Namesrv組件 106
5.2.2 Namesrv啟動流程 108
5.2.3 Namesrv停止流程 110
5.3 RocketMQ的路由原理 111
5.3.1 路由注冊 111
5.3.2 路由剔除 112
第6章 Broker存儲機制 114
6.1 Broker概述 115
6.1.1 什么是Broker 115
6.1.2 Broker存儲目錄結構 116
6.1.3 Broker啟動和停止流程 117
6.2 Broker存儲機制 125
6.2.1 Broker消息存儲結構 126
6.2.2 Broker消息存儲機制 130
6.2.3 Broker讀寫分離機制 150
6.3 Broker CommitLog索引機制 155
6.3.1 索引的數據結構 155
6.3.2 索引的構建過程 158
6.3.3 索引如何使用 159
6.4 Broker過期文件刪除機制 162
6.4.1 CommitLog文件的刪除過程 162
6.4.2 Consume Queue、Index File文件的刪除過程 166
6.5 Broker主從同步機制 167
6.5.1 主從同步概述 168
6.5.2 主從同步流程 169
6.6 Broker的關機恢復機制 174
6.6.1 Broker關機恢復概述 174
6.6.2 Broker關機恢復流程 177
第7章 RocketMQ特性——事務消息與延遲消息機制 182
7.1 事務消息概述 183
7.2 事務消息機制 184
7.2.1 生產者發送事務消息和執行本地事務 184
7.2.2 Broker存儲事務消息 188
7.2.3 Broker回查事務消息 191
7.2.4 Broker提交或回滾事務消息 197
7.3 延遲消息概述 201
7.4 延遲消息機制 203
7.4.1 延遲消息存儲機制 203
7.4.2 延遲消息投遞機制 205
第8章 RocketMQ源代碼閱讀 208
8.1 RocketMQ源代碼結構概述 209
8.2 RocketMQ源代碼編譯 212
8.3 如何閱讀源代碼 214
8.4 源代碼閱讀范例:通過消息id查詢消息 216
第9章 RocketMQ企業最佳實踐 224
9.1 RocketMQ落地概述 225
9.1.1 為什么選擇RocketMQ 225
9.1.2 如何做RocketMQ的集群管理 226
9.2 RocketMQ集群管理 230
9.2.1 Topic管理 230
9.2.2 消費者管理 235
9.3 RocketMQ集群監控和報警 240
9.3.1 監控和報警架構 240
9.3.2 基于Grafana監控 242
9.3.3 基于Prometheus的報警 243
9.4 RocketMQ集群遷移 244
9.5 RocketMQ測試環境實踐 245
9.6 RocketMQ接入實踐 247
9.6.1 Spring接入RocketMQ 247
9.6.2 Python接入RocketMQ 249
附錄 252
本書源碼以RocketMQ 4.2.0和RocketMQ 4.3.0為基礎,從RocketMQ的實際使用到RocketMQ的源碼分析,再到RocketMQ企業落地實踐方案,逐步講解。使讀者由淺入深地了解RocketMQ。本書在源碼分析過程中,先講整體流程,再按模塊、步驟進行詳細講解,希望讀者在閱讀時能舉一反三,能知其然且知其所以然。本書總共九章,分為五部分,第一部分講解消息隊列入門和RocketMQ生產、消費原理與最佳實踐;第二部分從整體角度講解RocketMQ架構;第三部分講解RocketMQ各個組件的基本原理;第四部分深入RocketMQ,講解如何閱讀源代碼、如何進行企業實踐;第五部分是附錄,包含Namesrv、Broker的核心參數配置說明和Exporter監控指標注釋。希望讀者在平時的工作中能熟悉、借鑒、參考RocketMQ的優秀設計理念,在技術能力上更進一步,在工作中更好地服務公司。希望讀者在平時的工作中能熟悉、借鑒、參考RocketMQ的優秀設計理念,在技術能力上更進一步,在工作中更好地服務公司。
為什么要寫這本書
2020年處于移動互聯網的下半場,各種技術層出不窮,雖然數據也在爆發增長,但是高并發、高吞吐已經不再是首要的痛點,穩定、可靠才是王道。
RocketMQ作為一款高可靠、低延遲、高并發、支持海量Topic的分布式消息中間件,服務于阿里巴巴、VIPKID、滴滴出行、微眾銀行、華為等國內各大廠。在阿里巴巴內的業務涵蓋了阿里巴巴全部的業務,也是雙11的核心鏈路支撐者之一。筆者所在公司選擇它也是由于RocketMQ具有高可靠、吞吐高的特點。
筆者早期接觸RocketMQ時,社區的中文文檔、原理講解還是比較少的。一個偶然的機會,筆者結識了Apache RocketMQ社區的維護者,隨即加入了社區,編撰文檔、提交PR。在社區工作的過程中,筆者發現使用RocketMQ的企業非常多,而大家卻缺乏入門之徑和實際落地經驗。后來,在一次社區MeetUp中,有幸和電子工業出版社的南編相識,這才萌發了寫本書總結的想法。
書籍是人類進步的階梯,筆者在編寫本書的時候才真正有所體會。筆者帶著總結落地經驗和了解RocketMQ原理的目標來編寫本書,目的是使其他使用者可以參考、借鑒,不用重復掉入我們曾經掉過的坑。


讀者對象
? 對RocketMQ有了解、使用的經驗后,想要深入源碼而無從下手的人員。
? 希望學習消息隊列和分布式系統的開發人員。
? 企業消息中間件維護和支持人員。
? RocketMQ代碼貢獻者。
? 支持開源的技術工作者。

如何閱讀本書
本書的難度屬于中級,介紹了RocketMQ的基本使用方法及其各個組件的基本原理,講解原理時,都是采用先整體架構后詳細分解的方式。
詳細分解時不會深入源碼逐段講,而是從代碼結構出發梳理整個運行過程。
本書分為五大部分。
第一部分包含第1章、第2章和第3章。主要講解消息隊列入門和RocketMQ生產者、消費者原理與最佳實踐。
第二部分包含第4章,主要介紹RocketMQ的架構設計和部署實踐,也為第三部分的講解做鋪墊。
第三部分包含第5章、第6章和第7章,主要講解RocketMQ核心組件Namesrv、Broker的基本實現原理、RocketMQ事務消息和延遲消息的設計和實現。
第四部分包含第8章和第9章,主要講解如何閱讀源代碼和企業實踐。
第五部分是附錄,主要列舉了Namesrv、Broker的核心配置項和Prometheus Exporter的指標說明。

勘誤與支持
由于筆者水平有限、編撰倉促,書中難免會出現一些錯誤,懇請讀者批評指正。如果您有更多寶貴意見和建議,請發送郵件到1026203200@qq.com,期待和您交流溝通RocketMQ的原理、問題與發展。

致謝
首先感謝我的公司、平臺和同事,讓我有機會可以比較深入地鉆研和治理RocketMQ,
本書的完成是離不開大家的支持和鼓勵的。
其次感謝Apache社區和社區維護者,更感謝RocketMQ的締造者,正是因為大家的努力方才有如今優秀的RocketMQ。
最后,我要誠摯感謝電子工業出版社的南編等其他工作人員,有了大家的幕后默默工作,才有了本書的出版。
pagetop