RocketMQ技术内幕:RocketMQ架构设计与实现原理 9787111614210

配送至
$ $ USD 美元

编辑推荐

(1)作者是RocketMQ社区布道师和开源分布式数据库中间件Mycat负责人,经验丰富。
(2)RocketMQ创始人/Alibaba Messaging开源技术负责人/Linux OpenMessaging创始人作序推荐。
(3)源代码角度:深入分析RocketMQ的核心技术架构和各主要功能模块的实现原理;应用角度:系统总结RocketMQ的使用方法和技巧。

名人推荐

分布式消息中间件已成为Cloud Native时代的必备基础组件,本书以RocketMQ的源代码为依托,对其架构设计和实现原理进行了深度解析。掌握本书内容后,不仅能从底层原理上了解RocketMQ是如何设计的,以及为什么要如此设计,还能更好地将RocketMQ应用于生产实践。
——曹宗南 华为云中间件架构师
RocketMQ是Java领域非常优秀的开源项目,每一个想深入学习Java高级编程技能的程序员都应该学习它的源码,在网络通讯、IO处理、分布式存储等技术方面都提供了非常优秀的实践。作者有丰富的Java开发经验和多年的技术博客编写经验,作者站在工程师视角,用细腻的文笔把RocketMQ的使用与特性写得简单而又深刻,跟着作者的思路把RocketMQ的架构设计以及重要特性梳理清楚,再对着源码学习,事半功倍。
——黄益明 阿里巴巴资深中间件工程师
本书从底层揭开了RocketMQ高性能的神秘面纱,从整体架构、底层存储设计、源码分析等方面综合剖析了RocketMQ,读完此书后会对架构设计及枯燥的源码分析有新的认识和体会。
——张登 原德邦平台架构师兼技术框架负责人
消息中间件在项目中的使用越来越广泛,RocketMQ更是其中的佼佼者——它性能表现优秀,生产稳定,并具备其他消息中间件所不具备的特性。本书理论与实践并重,让您能通过本书投入项目生产的同时,还能通晓其原理。不仅如此,本书契合官方文档,是对官方文档很好的完善与深入,强烈推荐!
——周立 《Spring Cloud与Docker微服务架构实战》作者

作者简介

作者简介
丁威
Java、分布式服务架构、中间件等多个领域的技术专家,擅长高并发编程、Netty网络编程、RocketMQ等技术,国内知名开源数据库中间件MyCAT的志愿者和技术顾问。目前担任上海优速物流的技术专家和经营支撑部门的架构师。对RocketMQ有非常深入的研究,是RocketMQ社区的布道师,不仅实践经验丰富,而且对其源代码有深入且系统的研究。
周继锋
拥有10余年大型项目架构设计及实战经验,曾主导过众多分布式系统、微服务及大数据项目。在高并发、高可用、高可扩展性、高可维护性等领域有丰富经验,对Hadoop、Spark源码进行过深度分析并具有丰富的实战经验。 曾在ERP、医学、互联网行业担任工程师、架构师、技术总监等职务,炼数成金高级讲师及国内知名的开源分布式数据库中间件Mycat负责人,也是《分布式数据库架构及企业实践:基于Mycat中间件》书籍的作者。

目录

推荐序
前言
第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 GroupTransferService实现原理 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
出版社机械工业出版社
作者丁威