RocketMQ 分佈式消息中間件:核心原理與最佳實踐

李偉

  • 出版商: 電子工業
  • 出版日期: 2020-07-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 276
  • 裝訂: 平裝
  • ISBN: 7121392674
  • ISBN-13: 9787121392672
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

商品描述

本書源碼以RocketMQ 4.2.0和RocketMQ 4.3.0為基礎,
從RocketMQ的實際使用到RocketMQ的源碼分析,再到RocketMQ企業落地實踐方案,逐步講解。
使讀者由淺入深地瞭解RocketMQ。
本書在源碼分析過程中,先講整體流程,再按模塊、步驟進行詳細講解,
希望讀者在閱讀時能舉一反三,能知其然且知其所以然。
本書總共九章,分為五部分,
第一部分講解消息隊列入門和RocketMQ生產、消費原理與最佳實踐;
第二部分從整體角度講解RocketMQ架構;
第三部分講解RocketMQ各個組件的基本原理;
第四部分深入RocketMQ,講解如何閱讀源代碼、如何進行企業實踐;
第五部分是附錄,包含Namesrv、Broker的核心參數配置說明和Exporter監控指標註釋。
希望讀者在平時的工作中能熟悉、借鑒、參考RocketMQ的優秀設計理念,
在技術能力上更進一步,在工作中更好地服務公司。
希望讀者在平時的工作中能熟悉、借鑒、參考RocketMQ的優秀設計理念,
在技術能力上更進一步,在工作中更好地服務公司。

作者簡介

李偉

Apache RocketMQ北京社區聯合發起人,RocketMQ項目Commiter,RocketMQ社區Python客戶端項目負責人。
目前就職於北京某在線教育公司,擔任數據中間件架構師,負責公司內部消息和數據流平台,
對分佈式存儲系統設計和研發有豐富經驗,熱衷於知識分享和社區活動。
座右銘:Programming is not only a way to problems,but also to think!

目錄大綱

目錄
第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