RocketMQ 技術內幕:RocketMQ 架構設計與實現原理, 2/e

丁威,張登,周繼鋒

  • 出版商: 機械工業
  • 出版日期: 2021-09-01
  • 定價: $654
  • 售價: 8.5$556
  • 語言: 簡體中文
  • 頁數: 456
  • 裝訂: 平裝
  • ISBN: 7111690923
  • ISBN-13: 9787111690924
  • 立即出貨

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

商品描述

這是一本指導讀者如何在實踐中讓RocketMQ實現高性能、高可用、高吞吐量和低延遲的著作。
作者是RocketMQ官方認定的“優秀佈道師”和技術專家,持續在RocketMQ領域深耕。
本書從源碼的角度分析了RocketMQ的技術架構和實現原理,第1版獲得了良好的口碑,
是RocketMQ領域的標誌性作品,第2版做了較大幅度的更新。
 Apache RocketMQ創始人/Linux OpenMessaging創始人兼主席/Alibaba Messaging開放技術負責人馮嘉高度評價並作序推薦。
 全書一共11章,邏輯上可分為3個部分:
 第1部分(第1章) 簡單介紹了RocketMQ的設計理念與目標,以及閱讀RocketMQ源碼的方法與技巧; 
第二部分(第2~9章) 從源碼角度對RocketMQ的技術架構以及消息發送、消息存儲、
消息消費、消息過濾、順序消息、主從同步、事務消息等主要功能模塊的實現原理進行了深入分析。
 第三部分(第10~11章) 首先從實戰的角度講了RocketMQ監控的原理、實現和應用,
然後通過各種類型的大量示例展示了RocketMQ的使用技巧。

作者簡介

周繼鋒

擁有十多年大型項目架構設計及實戰經驗,曾主導過眾多分佈式系統、微服務及大數據項目。
在高並發、高可用、高可擴展性、高可維護性等領域擁有豐富的經驗
,對Hadoop、Spark源碼進行過深度分析並具有豐富的實戰經驗。
曾在ERP、醫學、互聯網行業擔任資深工程師、資深架構師、技術總監等職務,
為煉數成金高級講師及國內知名的開源分佈式數據庫中間件Mycat的負責人。

目錄大綱

目錄

前言
第1章 閱讀源碼前的準備
1.1 獲取和調試RocketMQ的源碼
1.1.1 Eclipse獲取RocketMQ源碼
1.1.2 Eclipse調試RocketMQ源碼
1.1.3 IntelliJ IDEA獲取RocketMQ源碼
1.1.4 IntelliJ IDEA調試RocketMQ源碼
1.2 RocketMQ源碼的目錄結構
1.3 RocketMQ的設計理念和設計目標
1.3.1 設計理念
1.3.2 設計目標
1.4 本章小結
第2章 RocketMQ路由中心NameServer
2.1 NameServer架構設計
2.2 NameServer啟動流程
2.3 NameServer路由註冊、故障剔除
2.3.1 路由元信息
2.3.2 路由註冊
2.3.3 路由刪除
2.3.4 路由發現
2.4 本章小結
第3章 RocketMQ消息發送
3.1 漫談RocketMQ消息發送
3.1.1 topic路由機制
3.1.2 消息發送高可用設計
3.2 認識RocketMQ消息
3.3 生產者啟動流程
3.3.1 初識DefaultMQProducer
3.3.2 消息生產者啟動流程
3.4 消息發送基本流程
3.4.1 消息長度驗證
3.4.2 查找主題路由信息
3.4.3 選擇消息隊列
3.4.4 消息發送
3.5 批量消息發送
3.6 本章小結
第4章 RocketMQ消息存儲
4.1 存儲概要設計
4.1.1 RocketMQ存儲文件的組織方式
4.1.2 內存映射
4.1.3 靈活多變的刷盤策略
4.1.4 transientStorePoolEnable機制
4.1.5 文件恢復機制
4.2 初識消息存儲
4.3 消息發送存儲流程
4.4 存儲文件組織與內存映射
4.4.1 MappedFileQueue映射文件隊列
4.4.2 MappedFile內存映射文件
4.4.3 TransientStorePool
4.5 RocketMQ存儲文件
4.5.1 CommitLog文件
4.5.2 ConsumeQueue文件
4.5.3 Index文件
4.5.4 checkpoint文件
4.6 實時更新ConsumeQueue與Index文件
4.6.1 根據消息更新ConsumeQueue文件
4.6.2 根據消息更新Index文件
4.7 ConsumeQueue與Index文件恢復
4.7.1 Broker正常停止文件恢復
4.7.2 Broker異常停止文件恢復
4.8 文件刷盤機制
4.8.1 Broker同步刷盤
4.8.2 Broker異步刷盤
4.9 過期文件刪除機制
4.10 同步雙寫
4.11 本章小結
第5章 RocketMQ消息消費
5.1 RocketMQ消息消費概述
5.1.1 消費隊列負載機制與重平衡
5.1.2 並發消費模型
5.1.3 消息消費進度反饋機制
5.2 消息消費者初探
5.3 消費者啟動流程
5.4 消息拉取
5.4.1 PullMessageService實現機制
5.4.2 ProcessQueue實現機制
5.4.3 消息拉取基本流程
5.5 消息隊列負載與重新分佈機制
5.6 消息消費過程
5.6.1 消息消費
5.6.2 消息確認
5.6.3 消費進度管理
5.7 定時消息機制
5.7.1 load()方法
5.7.2 start()方法
5.7.3 定時調度邏輯
5.8 消息過濾機制
5.9 順序消息
5.9.1 消息隊列負載
5.9.2 消息拉取
5.9.3 消息消費
5.9.4 消息隊列鎖實現
5.10 本章小結
第6章 RocketMQ的ACL
6.1 什麼是ACL
6.2 如何使用ACL
6.2.1 Broker端開啟ACL
6.2.2 客戶端使用ACL
6.3 ACL實現原理
6.3.1 Broker端ACL核心入口
6.3.2 PlainAccessValidator詳解
6.3.3 PlainPermissionManager詳解
6.3.4 AclClientRPCHook詳解
6.4 本章小結
第7章 RocketMQ主從同步機制
7.1 RocketMQ主從同步原理
7.1.1 HAService整體工作機制
7.1.2 AcceptSocketService實現原理
7.1.3 GroupTransferService實現原理
7.1.4 HAClient實現原理
7.1.5 HAConnection實現原理
7.2 RocketMQ讀寫分離機制
7.3 RocketMQ元數據同步
7.3.1 從節點主動同步元數據
7.3.2 主節點消息拉取主動同步消費進度
7.4 本章小結
第8章 RocketMQ消息軌跡
8.1 消息軌蹟的引入目的和使用方法
8.2 消息軌跡設計原理
8.2.1 消息軌跡數據格式
8.2.2 如何採集軌跡數據
8.2.3 如何存儲消息軌跡數據
8.3 消息軌跡實現原理
8.3.1 尋找消息軌跡入口
8.3.2 消息發送軌跡數據
8.3.3 消息軌跡異步轉發實現機制
8.4 本章小結
第9章 RocketMQ主從切換
9.1 主從切換引入目的
9.2 Raft協議簡介
9.2.1 Leader選舉
9.2.2 日誌複製
9.3 RocketMQ DLedger主從切換之Leader選主
9.3.1 DLedgerLeaderElector核心類及核心屬性
9.3.2 選舉狀態管理器初始化
9.3.3 選舉狀態機狀態流轉
9.3.4 發送投票請求與處理投票請求
9.3.5 發送心跳包與處理心跳包
9.4 RocketMQ DLedger主從切換之存儲實現
9.4.1 RocketMQ DLedger核心類及核心屬性
9.4.2 RocketMQ DLedger數據存儲協議