书籍详情
RocketMQ分布式消息中间件:核心原理与最佳实践
作者:李伟 著
出版社:电子工业出版社
出版时间:2020-07-01
ISBN:9787121392672
定价:¥79.00
购买这本书可以去
内容简介
本书源码以RocketMQ 4.2.0和RocketMQ 4.3.0为基础,从RocketMQ的实际使用到RocketMQ的源码分析,再到RocketMQ企业落地实践方案,逐步讲解。使读者由浅入深地了解RocketMQ。本书在源码分析过程中,先讲整体流程,再按模块、步骤进行详细讲解,希望读者在阅读时能举一反三,能知其然且知其所以然。本书总共九章,分为五部分,第一部分讲解消息队列入门和RocketMQ生产、消费原理与最佳实践;第二部分从整体角度讲解RocketMQ架构;第三部分讲解RocketMQ各个组件的基本原理;第四部分深入RocketMQ,讲解如何阅读源代码、如何进行企业实践;第五部分是附录,包含Namesrv、Broker的核心参数配置说明和Exporter监控指标注释。希望读者在平时的工作中能熟悉、借鉴、参考RocketMQ的优秀设计理念,在技术能力上更进一步,在工作中更好地服务公司。希望读者在平时的工作中能熟悉、借鉴、参考RocketMQ的优秀设计理念,在技术能力上更进一步,在工作中更好地服务公司。
作者简介
李伟Apache RocketMQ北京社区联合发起人,RocketMQ项目Commiter,RocketMQ社区Python客户端项目负责人。目前就职于北京某在线教育公司,担任数据中间件架构师,负责公司内部消息和数据流平台,对分布式存储系统设计和研发有丰富经验,热衷于知识分享和社区活动。座右铭:Programming is not only a way to problems,but also to think!
目录
目 录
第1章 RoketMQ综述\t1
1.1 什么是消息队列\t2
1.2 为什么需要消息队列\t4
1.2.1 削峰填谷\t4
1.2.2 程序间解耦\t5
1.2.3 异步处理\t6
1.2.4 数据的最终一致性\t6
1.3 常见消息队列\t7
1.4 RocketMQ的发展史与未来\t9
1.4.1 RocketMQ的发展史\t9
1.4.2 Apache RocketMQ的未来\t11
第2章 RocketMQ的生产者原理和最佳实践\t14
2.1 生产者原理\t15
2.1.1 生产者概述\t15
2.1.2 消息结构和消息类型\t16
2.1.3 生产者高可用\t17
2.2 生产者启动流程\t22
2.3 消息发送流程\t32
2.4 发送消息最佳实践\t36
2.4.1 发送普通消息\t36
2.4.2 发送顺序消息\t37
2.4.3 发送延迟消息\t37
2.4.4 发送事务消息\t38
2.4.5 发送单向消息\t40
2.4.6 批量消息发送\t41
2.5 生产者最佳实践总结\t42
第3章 RocketMQ的消费流程和最佳实践\t44
3.1 消费者概述\t45
3.1.1 消费流程\t45
3.1.2 消费模式\t46
3.1.3 可靠消费\t48
3.2 消费者启动机制\t50
3.3 消费者的Rebalance机制\t58
3.4 消费进度保存机制\t65
3.5 消费方式\t70
3.5.1 Pull消费流程\t71
3.5.2 Push消费流程\t72
3.6 消息过滤\t86
3.6.1 为什么要设计过滤功能\t86
3.6.2 RocketMQ支持消息过滤\t86
3.7 消费者最佳实践总结\t91
第4章 RocketMQ架构和部署最佳实践\t94
4.1 RocketMQ架构\t95
4.2 常用的部署拓扑和部署实践\t96
4.2.1 常用的拓扑图\t96
4.2.2 同步复制、异步复制和同步刷盘、异步刷盘\t97
4.2.3 部署实践\t98
第5章 Namesrv\t102
5.1 Namesrv概述\t103
5.1.1 什么是Namesrv\t103
5.1.2 Namesrv核心数据结构和API\t103
5.1.3 Namesrv和Zookeeper\t105
5.2 Namesrv架构\t106
5.2.1 Namesrv组件\t106
5.2.2 Namesrv启动流程\t108
5.2.3 Namesrv停止流程\t110
5.3 RocketMQ的路由原理\t111
5.3.1 路由注册\t111
5.3.2 路由剔除\t112
第6章 Broker存储机制\t114
6.1 Broker概述\t115
6.1.1 什么是Broker\t115
6.1.2 Broker存储目录结构\t116
6.1.3 Broker启动和停止流程\t117
6.2 Broker存储机制\t125
6.2.1 Broker消息存储结构\t126
6.2.2 Broker消息存储机制\t130
6.2.3 Broker读写分离机制\t150
6.3 Broker CommitLog索引机制\t155
6.3.1 索引的数据结构\t155
6.3.2 索引的构建过程\t158
6.3.3 索引如何使用\t159
6.4 Broker过期文件删除机制\t162
6.4.1 CommitLog文件的删除过程\t162
6.4.2 Consume Queue、Index File文件的删除过程\t166
6.5 Broker主从同步机制\t167
6.5.1 主从同步概述\t168
6.5.2 主从同步流程\t169
6.6 Broker的关机恢复机制\t174
6.6.1 Broker关机恢复概述\t174
6.6.2 Broker关机恢复流程\t177
第7章 RocketMQ特性――事务消息与延迟消息机制\t182
7.1 事务消息概述\t183
7.2 事务消息机制\t184
7.2.1 生产者发送事务消息和执行本地事务\t184
7.2.2 Broker存储事务消息\t188
7.2.3 Broker回查事务消息\t191
7.2.4 Broker提交或回滚事务消息\t197
7.3 延迟消息概述\t201
7.4 延迟消息机制\t203
7.4.1 延迟消息存储机制\t203
7.4.2 延迟消息投递机制\t205
第8章 RocketMQ源代码阅读\t208
8.1 RocketMQ源代码结构概述\t209
8.2 RocketMQ源代码编译\t212
8.3 如何阅读源代码\t214
8.4 源代码阅读范例:通过消息id查询消息\t216
第9章 RocketMQ企业最佳实践\t224
9.1 RocketMQ落地概述\t225
9.1.1 为什么选择RocketMQ\t225
9.1.2 如何做RocketMQ的集群管理\t226
9.2 RocketMQ集群管理\t230
9.2.1 Topic管理\t230
9.2.2 消费者管理\t235
9.3 RocketMQ集群监控和报警\t240
9.3.1 监控和报警架构\t240
9.3.2 基于Grafana监控\t242
9.3.3 基于Prometheus的报警\t243
9.4 RocketMQ集群迁移\t244
9.5 RocketMQ测试环境实践\t245
9.6 RocketMQ接入实践\t247
9.6.1 Spring接入RocketMQ\t247
9.6.2 Python接入RocketMQ\t249
附录\t252
第1章 RoketMQ综述\t1
1.1 什么是消息队列\t2
1.2 为什么需要消息队列\t4
1.2.1 削峰填谷\t4
1.2.2 程序间解耦\t5
1.2.3 异步处理\t6
1.2.4 数据的最终一致性\t6
1.3 常见消息队列\t7
1.4 RocketMQ的发展史与未来\t9
1.4.1 RocketMQ的发展史\t9
1.4.2 Apache RocketMQ的未来\t11
第2章 RocketMQ的生产者原理和最佳实践\t14
2.1 生产者原理\t15
2.1.1 生产者概述\t15
2.1.2 消息结构和消息类型\t16
2.1.3 生产者高可用\t17
2.2 生产者启动流程\t22
2.3 消息发送流程\t32
2.4 发送消息最佳实践\t36
2.4.1 发送普通消息\t36
2.4.2 发送顺序消息\t37
2.4.3 发送延迟消息\t37
2.4.4 发送事务消息\t38
2.4.5 发送单向消息\t40
2.4.6 批量消息发送\t41
2.5 生产者最佳实践总结\t42
第3章 RocketMQ的消费流程和最佳实践\t44
3.1 消费者概述\t45
3.1.1 消费流程\t45
3.1.2 消费模式\t46
3.1.3 可靠消费\t48
3.2 消费者启动机制\t50
3.3 消费者的Rebalance机制\t58
3.4 消费进度保存机制\t65
3.5 消费方式\t70
3.5.1 Pull消费流程\t71
3.5.2 Push消费流程\t72
3.6 消息过滤\t86
3.6.1 为什么要设计过滤功能\t86
3.6.2 RocketMQ支持消息过滤\t86
3.7 消费者最佳实践总结\t91
第4章 RocketMQ架构和部署最佳实践\t94
4.1 RocketMQ架构\t95
4.2 常用的部署拓扑和部署实践\t96
4.2.1 常用的拓扑图\t96
4.2.2 同步复制、异步复制和同步刷盘、异步刷盘\t97
4.2.3 部署实践\t98
第5章 Namesrv\t102
5.1 Namesrv概述\t103
5.1.1 什么是Namesrv\t103
5.1.2 Namesrv核心数据结构和API\t103
5.1.3 Namesrv和Zookeeper\t105
5.2 Namesrv架构\t106
5.2.1 Namesrv组件\t106
5.2.2 Namesrv启动流程\t108
5.2.3 Namesrv停止流程\t110
5.3 RocketMQ的路由原理\t111
5.3.1 路由注册\t111
5.3.2 路由剔除\t112
第6章 Broker存储机制\t114
6.1 Broker概述\t115
6.1.1 什么是Broker\t115
6.1.2 Broker存储目录结构\t116
6.1.3 Broker启动和停止流程\t117
6.2 Broker存储机制\t125
6.2.1 Broker消息存储结构\t126
6.2.2 Broker消息存储机制\t130
6.2.3 Broker读写分离机制\t150
6.3 Broker CommitLog索引机制\t155
6.3.1 索引的数据结构\t155
6.3.2 索引的构建过程\t158
6.3.3 索引如何使用\t159
6.4 Broker过期文件删除机制\t162
6.4.1 CommitLog文件的删除过程\t162
6.4.2 Consume Queue、Index File文件的删除过程\t166
6.5 Broker主从同步机制\t167
6.5.1 主从同步概述\t168
6.5.2 主从同步流程\t169
6.6 Broker的关机恢复机制\t174
6.6.1 Broker关机恢复概述\t174
6.6.2 Broker关机恢复流程\t177
第7章 RocketMQ特性――事务消息与延迟消息机制\t182
7.1 事务消息概述\t183
7.2 事务消息机制\t184
7.2.1 生产者发送事务消息和执行本地事务\t184
7.2.2 Broker存储事务消息\t188
7.2.3 Broker回查事务消息\t191
7.2.4 Broker提交或回滚事务消息\t197
7.3 延迟消息概述\t201
7.4 延迟消息机制\t203
7.4.1 延迟消息存储机制\t203
7.4.2 延迟消息投递机制\t205
第8章 RocketMQ源代码阅读\t208
8.1 RocketMQ源代码结构概述\t209
8.2 RocketMQ源代码编译\t212
8.3 如何阅读源代码\t214
8.4 源代码阅读范例:通过消息id查询消息\t216
第9章 RocketMQ企业最佳实践\t224
9.1 RocketMQ落地概述\t225
9.1.1 为什么选择RocketMQ\t225
9.1.2 如何做RocketMQ的集群管理\t226
9.2 RocketMQ集群管理\t230
9.2.1 Topic管理\t230
9.2.2 消费者管理\t235
9.3 RocketMQ集群监控和报警\t240
9.3.1 监控和报警架构\t240
9.3.2 基于Grafana监控\t242
9.3.3 基于Prometheus的报警\t243
9.4 RocketMQ集群迁移\t244
9.5 RocketMQ测试环境实践\t245
9.6 RocketMQ接入实践\t247
9.6.1 Spring接入RocketMQ\t247
9.6.2 Python接入RocketMQ\t249
附录\t252
猜您喜欢