java自学网(www.javazx.com)-java论坛,java电子书推荐:《RocketMQ技术内幕:RocketMQ架构设计与实现原理》
7 C0 B: Z9 ^+ O* B' M! r& P7 ?java电子书推荐理由:本书由RocketMQ社区早期的布道者和技术专家撰写,Apache RocketMQ创始人/Linux OpenMessaging创始人兼主席/Alibaba Messaging开源技术负责人冯嘉的高度评价并作序推荐。
/ \; z% t1 u( s$ S源码角度,本书对RocketMQ的核心技术架构,以及消息发送、消息存储、消息消费、消息过滤、顺序消息、主从同步(HA)、事务消息等主要功能模块的实现原理进行了深入分析,同时展示了源码阅读的相关技巧;应用层面,本书总结了大量RocketMQ的使用技巧。通过本书,读者将深入理解消息中间件和底层网络通讯机制的核心知识点。1 `7 L) G; ` P* _2 u6 i- O$ b7 k
8 S6 u7 C; F& f# r6 E, R% J
; L3 F) D& G! b! X# x9 V8 p$ |作者:丁威 周继锋' }: A+ U" x3 c3 U: A4 e0 x
出版社:机械工业出版社) A- S; r R* C% S
出版时间:2018年12月 # G" a5 H. z* O4 m) s8 k
书籍价格:69.00元& { ` i6 h& @( t7 Q6 f
: z* @& X8 K+ I& a: b1 m2 K. I
' b O J$ d. A2 _: c& H
/ _' n) ]# h, g. d( V
java电子书目录:4 c0 U5 f$ B- C0 X: z# }8 H
第1章 阅读源代码前的准备 1" e! o2 Y; k6 [2 v
1.1 获取和调试RocketMQ的源代码 1
, e% q7 d9 h2 ?" [1.1.1 Eclipse获取RocketMQ源码 2
, } r' n r7 d* U1.1.2 Eclipse调试RocketMQ源码 9
2 r+ B2 H- Z) X O6 f/ M1.1.3 IntelliJ IDEA获取RocketMQ源码 15
x+ `1 y# L& _) ~! K- `1.1.4 IntelliJ IDEA调试RocketMQ源码 20
0 p3 O+ g9 z @7 S8 g+ g1 [. U1.2 RocketMQ源代码的目录结构 27
/ @1 }9 i0 U5 W5 n9 \3 V1.3 RocketMQ的设计理念和目标 28- c0 w! q; H/ W$ O* {; ]
1.3.1 设计理念 28
7 T# k$ K' Z8 c' \1.3.2 设计目标 28
0 ]# G/ Y p9 q q- q" Y }3 S第2章 RocketMQ路由中心NameServer 31$ L9 I2 T# m% p( \
2.1 NameServer架构设计 31
1 b. T) n+ h7 K/ t: _+ U2.2 NameServer启动流程 32; u3 F# i0 \8 K1 i0 N
2.3 NameServer路由注册、故障剔除 360 G9 {6 u+ s% q) G: y
2.3.1 路由元信息 36
4 R0 V2 a- E7 s' M2 i* V2.3.2 路由注册 38/ E* T$ c7 {! S
2.3.3 路由删除 43
- ^$ i" w# B2 s4 w6 R2.3.4 路由发现 46
6 {( `2 U2 a N1 ]: x b* O f2.4 本章小结 47
( _1 w. R: A. X第3章 RocketMQ消息发送 49
: J7 f1 d& u" @( g5 d* f4 Z3.1 漫谈RocketMQ消息发送 491 \; F% A3 z& J- v5 E
3.2 认识RocketMQ消息 50
0 V7 F5 b5 o a) Y3.3 生产者启动流程 51- `$ c# p# U! \4 M0 t' `
3.3.1 初识DefaultMQProducer消息发送者 51+ J! e) t. @6 g% t( G
3.3.2 消息生产者启动流程 54$ m# n# Y/ p$ z" q, Y9 B6 R
3.4 消息发送基本流程 56; }; A/ O6 j1 R# ]
3.4.1 消息长度验证 56
7 z+ J3 k3 o5 k: Q3 M! ]3 J3.4.2 查找主题路由信息 560 Q' Q- f8 L# u q3 q7 m
3.4.3 选择消息队列 60+ m" X+ `! u0 j! s7 N. O
3.4.4 消息发送 65
! D" D/ M: ?. o) {. G3.5 批量消息发送 71
x0 X% R/ z3 P( Z: S2 P3.6 本章小结 74/ Y N% L! ~( e, Z, T0 ^8 r: @1 |
第4章 RocketMQ消息存储 75
! B. q8 v% _8 O. J7 X. M4.1 存储概要设计 75
+ P! |; x7 t- \+ p/ w6 }4.2 初识消息存储 76) C* K( C3 c! j9 T8 P. u# o3 D
4.3 消息发送存储流程 78$ C7 ?& y: W9 w
4.4 存储文件组织与内存映射 83
7 K7 t3 B, H8 o( W$ |4.4.1 MappedFileQueue映射文件队列 84
* V/ P* ]' b+ e* G# B$ k* m4.4.2 MappedFile内存映射文件 87
) v4 c8 T+ M" _+ d4.4.3 TransientStorePool 93
& e$ L" }. J! t+ E- }5 x4.5 RocketMQ存储文件 947 [* v4 V/ c. |/ }. J" n
4.5.1 Commitlog文件 95
8 I2 g7 }7 z5 f" q/ O# g4.5.2 ConsumeQueue文件 97
+ J& K+ D- A" P M. B4.5.3 Index索引文件 1008 Y) L$ B% K' I' E( P" P
4.5.4 checkpoint文件 104
5 V: g4 X' y0 C2 |1 Q2 O8 Z4.6 实时更新消息消费队列与索引文件 105
- q+ v2 B4 z7 v( Q: x& O5 y/ j4.6.1 根据消息更新ConumeQueue 107, w9 f5 q2 O) j3 B* E: o5 c! ?
4.6.2 根据消息更新Index索引文件 1083 S1 q2 ~8 J1 a2 n
4.7 消息队列与索引文件恢复 109
" l: g3 u8 Q3 V2 N: H9 K4.7.1 Broker正常停止文件恢复 1123 V, P: d3 ~) h7 [; s9 h# Y9 L7 `% _; ]
4.7.2 Broker异常停止文件恢复 1142 R$ p$ l% C5 A- \
4.8 文件刷盘机制 115
8 H; E; P K* A1 L. T3 }* c3 D4.8.1 Broker同步刷盘 116. ]1 Q o$ @' [& ^3 h
4.8.2 Broker异步刷盘 119% e" }8 C9 r! [6 g p/ E
4.9 过期文件删除机制 122$ H. i; y, h6 ~8 ]4 I
4.10 本章小结 1260 [5 x9 J8 `( F' S4 \
第5章 RocketMQ消息消费 127
. a2 H- g5 o: b; J! l5 k0 ?5.1 RocketMQ消息消费概述 127
* b6 {+ }: Y$ }9 j) i& D5.2 消息消费者初探 128
, b+ S$ a: u8 V' m; _2 L% j" E5.3 消费者启动流程 130( l$ G; t' t ~- G. D3 _7 O
5.4 消息拉取 133+ U* L8 C) h. @) R
5.4.1 PullMessageService实现机制 1337 ?% @- w- N9 s! L" A6 _) J% e
5.4.2 ProcessQueue实现机制 136
. l# U4 |$ d9 o. {- T9 i I5.4.3 消息拉取基本流程 138
" [' ], G' T+ S. P# _4 J% k$ |5.5 消息队列负载与重新分布机制 154; A" i2 ?8 m8 Y# S# P) o8 N
5.6 消息消费过程 162
2 V7 a7 y% D) ]2 `5.6.1 消息消费 163; y6 C* G. v2 |, @6 n. U* B
5.6.2 消息确认(ACK) 1675 S$ C& C8 p: j
5.6.3 消费进度管理 1712 `" k- W* p) c
5.7 定时消息机制 176
" {) {1 v; l2 N2 I. u: n& f5.7.1 load方法 1779 E3 a6 ~3 ~& |3 e0 [$ T7 H2 ~ _
5.7.2 start方法 178
6 w+ j% Y/ z' }" c5.7.3 定时调度逻辑 179( ]7 Z- M# }! ~. o) R
5.8 消息过滤机制 1813 c& e: i- T/ ?( W# C( Z- i
5.9 顺序消息 186
* H+ y* P% m! I# y5.9.1 消息队列负载 187( Q: v7 ?1 h! L. X, Y- M
5.9.2 消息拉取 187" k. p) B+ C) Z5 v. y; c5 b/ |
5.9.3 消息消费 1882 S) f. Q, k* O; C
5.9.4 消息队列锁实现 195
( Q$ ~, x& a; B2 d, {! N; R* o5.10 本章小结 196
- I0 c; {: l+ }6 `8 }& W) |1 g第6章 消息过滤FilterServer 198* U# Q. g G) M N/ U, D$ Y2 B
6.1 ClassFilter运行机制 198' S5 m. y4 n' n( G9 P0 t( J
6.2 FilterServer注册剖析 199+ ~" c: d8 ] U' V8 b/ N% s4 J/ X
6.3 类过滤模式订阅机制 202/ B$ V2 L. B( o K+ B. L. b2 y
6.4 消息拉取 205
1 x% ^4 F$ T& f) E- D1 E# x+ d8 k6 y6.5 本章小结 206
9 g, ?% [" M6 r' ]* ~: Z# N第7章 RocketMQ主从同步(HA)机制 207
' j4 \( W" O8 y5 [7.1 RocketMQ主从复制原理 207
: d* x8 v$ w- ?- y$ g& o2 z7.1.1 HAService整体工作机制 208
0 Q" s: I1 g1 n' r0 n+ }7.1.2 AcceptSocketService实现原理 208
& m$ i( E3 e1 c. X( |7.1.3 GroupTransferService实现原理 210
) Y+ Z$ g; U2 u9 ?0 i3 g$ m0 m$ N% h* P7.1.4 HAClient实现原理 211
0 r( l; v. a4 T( |7.1.5 HAConnection实现原理 214. G' q# j) u) N! K" }5 `" G
7.2 RocketMQ读写分离机制 2204 C( F: Y: `9 \" V6 Z: l% o9 i% u
7.3 本章小结 223) Q4 {. A: z' f
第8章 RocketMQ事务消息 225( n9 f& l3 |5 v. Y" M( h
8.1 事务消息实现思想 225$ E. m7 P$ R+ n6 Q1 Z
8.2 事务消息发送流程 226
$ P! q$ z }% c. U q! p8.3 提交或回滚事务 232
; E. o" ~& q. M) j& k2 c8.4 事务消息回查事务状态 233 _ |9 a, b* n! P
8.5 本章小结 240
, Q/ p$ o5 x) Z2 X% a第9章 RocketMQ实战 242, T9 k8 d/ a4 b9 @
9.1 消息批量发送 242+ p1 G, m! E! @8 v) o% Q
9.2 消息发送队列自选择 243
3 m+ x* j3 R7 |8 l' P) ^: z9.3 消息过滤 243) g$ ?$ F2 l4 ^8 r
9.3.1 TAG模式过滤 244/ |$ R: G4 _1 C. M/ W3 e6 _/ F% a
9.3.2 SQL表达模式过滤 2447 q7 ^6 r8 C2 _1 E) E8 s" K: M
9.3.3 类过滤模式 245' s* t6 [0 T" v& L+ U* Q
9.4 事务消息 247
& X* h" ` F& \- n2 Y! ^+ g% {; K9.5 Spring整合RocketMQ 250
; O2 ~' B" x+ ^- w7 ^' V" h9.6 Spring Cloud整合RocketMQ 2510 ^ S1 m7 y- n- _! q2 x' H
9.7 RocketMQ监控与运维命令 258
! k$ ]# D: Y, p3 h$ L# ]9.7.1 RocktetMQ监控平台搭建 2586 ~; u0 h8 {" P; ?& K! K$ t
9.7.2 RocketMQ管理命令 2611 @5 n) a2 c* `0 G# M& a4 v
9.8 应用场景分析 280, [& i; V; G$ |0 S2 p
9.9 本章小结 281
- a0 C* J3 M/ o( c. z% E附录A 参数说明 282
" Q* K6 N4 t! A" q( yJava资料百度网盘下载地址链接(百度云):《RocketMQ技术内幕》_丁威等[javazx.com].pdf【密码回帖可见】
, d( _1 a7 _* m9 U) x& v4 \8 T7 E* H. h P$ ]
; ]* ]6 P( q; }) ?8 U Z
3 {6 S. W' K0 {. a: ~; C# ?% } N' v# ^
( |# d- Q3 M7 U2 B. V9 g
8 t" ~+ n+ _- U5 P
, G% M! A5 ^4 P% Z8 T7 @
" _+ j/ p, j& ]$ N6 P2 ?9 {* v- y, x, P6 `+ G
5 H6 c9 V; N$ @ j* R/ | |