第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 Group TransferService实现原理 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