注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计RocketMQ技术内幕:RocketMQ架构设计与实现原理(第2版)

RocketMQ技术内幕:RocketMQ架构设计与实现原理(第2版)

RocketMQ技术内幕:RocketMQ架构设计与实现原理(第2版)

定 价:¥109.00

作 者: 丁威,张登,周继锋 著
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111690924 出版时间: 2021-11-01 包装: 平装
开本: 16开 页数: 456 字数:  

内容简介

  这是一本指导读者如何在实践中让RocketMQ实现高性能、高可用、高吞吐量和低延迟的著作。作者是RocketMQ官方认定的“优秀布道师”和技术专家,持续在RocketMQ领域深耕。本书从源码的角度分析了RocketMQ的技术架构和实现原理,第1版获得了良好的口碑,是RocketMQ领域的标志性作品,第2版做了较大幅度的更新。Apache RocketMQ创始人/Linux OpenMessaging创始人兼主席/阿里 Messaging开放技术负责人冯嘉高度评价并作序推荐。【全书一共11章,分为3个部分】 第1部分(第1章): 简单介绍了RocketMQ的设计理念与目标,以及阅读RocketMQ源码的方法与技巧; 第二部分(第2~9章): 从源码角度对RocketMQ的技术架构以及消息发送、消息存储、消息消费、消息过滤、顺序消息、主从同步、事务消息等主要功能模块的实现原理进行了深入分析。 第三部分(第10~11章): 首先从实战的角度讲了RocketMQ监控的原理、实现和应用,然后通过各种类型的大量示例展示了RocketMQ的使用技巧。

作者简介

  丁威中间件技术专家,资深RocketMQ技术专家,曾获RocketMQ官方颁发的“优秀布道师”称号。 现担任中通快递技术平台部资深架构师,主要负责全链路压测、消息中间件、数据同步等产品的研发与落地,拥有千亿级消息集群的运维经验,不仅实践经验丰富,而且对RocketMQ的源码有深入、系统的研究。 热衷于中间件领域的技术分享,荣获“CSDN 2020博客之星”等荣誉称号,维护“中间件兴趣圈”,更多精彩内容,可以关注公众号。张登 专家级架构师,资深RocketMQ技术专家,在分布式系统架构领域有丰富的实战经验,擅长高并发系统的架构设计与调优,主导过多家快递公司EA规划。 曾就职于德邦等公司,现任圆通科技公司技术平台部架构负责人,负责开发框架的搭建、中间件及混合云相关技术的平台化建设。主导设计过消息分发、API网关、全链路监控、分布式文件存储等多个涉及百亿级规模的基础服务平台。 “IT巅峰技术”公众号维护者,RocketMQ上海社区联合创始人。 周继锋 资深RocketMQ技术专家,知名开源分布式数据库中间件Mycat负责人。 拥有10余年大型项目架构设计及实战经验,曾主导过大量分布式、微服务、大数据相关的项目。在高并发、高可用、高可扩展性、高可维护性等领域有丰富经验,对Hadoop、Spark的源码进行过深度分析并具有丰富的实战经验。 曾在医学、互联网,SAAS行业担任资深架构师、技术总监等职务。现任炼数成金高级讲师,广州鼎牛网络、金石数字创始人。

图书目录

第1章 阅读源码前的准备1
1.1 获取和调试RocketMQ的源码1
1.1.1 Eclipse获取RocketMQ源码1
1.1.2 Eclipse调试RocketMQ源码8
1.1.3 IntelliJ IDEA获取RocketMQ源码14
1.1.4 IntelliJ IDEA调试RocketMQ源码16
1.2 RocketMQ源码的目录结构23
1.3 RocketMQ的设计理念和设计目标23
1.3.1 设计理念23
1.3.2 设计目标24
1.4 本章小结26
第2章 RocketMQ路由中心NameServer27
2.1 NameServer架构设计27
2.2 NameServer启动流程29
2.3 NameServer路由注册、故障剔除32
2.3.1 路由元信息32
2.3.2 路由注册35
2.3.3 路由删除40
2.3.4 路由发现43
2.4 本章小结44
第3章 RocketMQ消息发送46
3.1 漫谈RocketMQ消息发送46
3.1.1 topic路由机制47
3.1.2 消息发送高可用设计48
3.2 认识RocketMQ消息50
3.3 生产者启动流程51
3.3.1 初识DefaultMQProducer51
3.3.2 消息生产者启动流程54
3.4 消息发送基本流程55
3.4.1 消息长度验证56
3.4.2 查找主题路由信息57
3.4.3 选择消息队列60
3.4.4 消息发送65
3.5 批量消息发送72
3.6 本章小结74
第4章 RocketMQ消息存储75
4.1 存储概要设计75
4.1.1 RocketMQ存储文件的组织方式76
4.1.2 内存映射80
4.1.3 灵活多变的刷盘策略81
4.1.4 transientStorePoolEnable机制82
4.1.5 文件恢复机制82
4.2 初识消息存储83
4.3 消息发送存储流程84
4.4 存储文件组织与内存映射90
4.4.1 MappedFileQueue映射文件队列 90
4.4.2 MappedFile内存映射文件92
4.4.3 TransientStorePool99
4.5 RocketMQ存储文件100
4.5.1 CommitLog文件101
4.5.2 ConsumeQueue文件102
4.5.3 Index文件106
4.5.4 checkpoint文件110
4.6 实时更新ConsumeQueue与Index文件111
4.6.1 根据消息更新ConsumeQueue文件113
4.6.2 根据消息更新Index文件114
4.7 ConsumeQueue与Index文件恢复115
4.7.1 Broker正常停止文件恢复118
4.7.2 Broker异常停止文件恢复120
4.8 文件刷盘机制121
4.8.1 Broker同步刷盘122
4.8.2 Broker异步刷盘125
4.9 过期文件删除机制128
4.10 同步双写132
4.11 本章小结136
第5章 RocketMQ消息消费137
5.1 RocketMQ消息消费概述137
5.1.1 消费队列负载机制与重平衡138
5.1.2 并发消费模型139
5.1.3 消息消费进度反馈机制139
5.2 消息消费者初探141
5.3 消费者启动流程143
5.4 消息拉取146
5.4.1 PullMessageService实现机制147
5.4.2 ProcessQueue实现机制149
5.4.3 消息拉取基本流程150
5.5 消息队列负载与重新分布机制167
5.6 消息消费过程175
5.6.1 消息消费176
5.6.2 消息确认180
5.6.3 消费进度管理184
5.7 定时消息机制189
5.7.1 load()方法190
5.7.2 start()方法190
5.7.3 定时调度逻辑192
5.8 消息过滤机制194
5.9 顺序消息199
5.9.1 消息队列负载199
5.9.2 消息拉取200
5.9.3 消息消费201
5.9.4 消息队列锁实现208
5.10 本章小结209
第6章 RocketMQ的ACL210
6.1 什么是ACL210
6.2 如何使用ACL211
6.2.1 Broker端开启ACL211
6.2.2 客户端使用ACL212
6.3 ACL实现原理214
6.3.1 Broker端ACL核心入口214
6.3.2 PlainAccessValidator详解216
6.3.3 PlainPermissionManager详解220
6.3.4 AclClientRPCHook详解228
6.4 本章小结231
第7章 RocketMQ主从同步机制232
7.1 RocketMQ主从同步原理232
7.1.1 HAService整体工作机制233
7.1.2 AcceptSocketService实现原理233
7.1.3 GroupTransferService实现原理235
7.1.4 HAClient实现原理236
7.1.5 HAConnection实现原理239
7.2 RocketMQ读写分离机制245
7.3 RocketMQ元数据同步248
7.3.1 从节点主动同步元数据249
7.3.2 主节点消息拉取主动同步消费进度250
7.4 本章小结251
第8章 RocketMQ消息轨迹252
8.1 消息轨迹的引入目的和使用方法252
8.2 消息轨迹设计原理255
8.2.1 消息轨迹数据格式255
8.2.2 如何采集轨迹数据256
8.2.3 如何存储消息轨迹数据257
8.3 消息轨迹实现原理257
8.3.1 寻找消息轨迹入口257
8.3.2 消息发送轨迹数据259
8.3.3 消息轨迹异步转发实现机制261
8.4 本章小结265
第9章 RocketMQ主从切换266
9.1 主从切换引入目的266
9.2 Raft协议简介267
9.2.1 Leader选举267
9.2.2 日志复制268
9.3 RocketMQ DLedger主从切换之Leader选主269
9.3.1 DLedgerLeaderElector核心类及核心属性270
9.3.2 选举状态管理器初始化271
9.3.3 选举状态机状态流转273
9.3.4 发送投票请求与处理投票请求280
9.3.5 发送心跳包与处理心跳包283
9.4 RocketMQ DLedger主从切换之存储实现288
9.4.1 RocketMQ DLedger核心类及核心属性288
9.4.2 RocketMQ DLedger数据存储协议290
9.4.3 RocketMQ DLedger索引存储协议291
9.5 RocketMQ DLedger主从切换之日志追加291
9.5.1 日志追加流程概述291
9.5.2 判断Push队列是否已满293
9.5.3 Leader节点日志存储293
9.5.4 Leader节点等待从节点日志复制响应ACK298
9.6 RocketMQ DLedger主从切换之日志复制299
9.6.1 日志复制设计理念300
9.6.2 日志复制类设计体系301
9.6.3 日志转发303
9.7 RocketMQ整合DLedger设计技巧与实现原理326
9.7.1 数据存储兼容设计327
9.7.2 数据存储兼容实现原理328
9.7.3 主从切换元数据同步机制337
9.8 RocketMQ主从切换实战344
9.8.1 主从切换核心配置属性344
9.8.2 搭建主从同步环境344
9.8.3 主从同步集群升级到主从切换346
9.9 本章小结350
第10章 RocketMQ监控352
10.1 设计理念352
10.2 实现原理353
10.2.1 监控相关类图353
10.2.2 监控原始数据采集流程355
10.3 监控数据采样机制356
10.3.1 监控数据采样356
10.3.2 根据采样计算统计指标357
10.4 如何采集监控指标359
10.5 监控实战应用360
10.6 本章小结365
第11章 RocketMQ实战366
11.1 消息批量发送366
11.2 消息发送队列自选择367
11.3 消息过滤368
11.3.1 TAG过滤模式368
11.3.2 SQL过滤模式368
11.3.3 类过滤模式369
11.4 事务消息371
11.5 Spring整合RocketMQ375
11.6 Spring Cloud整合RocketMQ376
11.7 RocketMQ监控与运维命令384
11.7.1 搭建RocketMQ监控平台rocketmq-console384
11.7.2 RocketMQ管理命令387
11.8 应用场景分析423
11.9 实战案例424
11.9.1 RocketMQ集群线上故障缩容实战案例424
11.9.2 RocketMQ在线扩容实战427
11.10 本章小结430

本目录推荐