RocketMQ分布式消息中间件:核心原理与最佳实践
  • 推荐0
  • 收藏4
  • 浏览2.3K

RocketMQ分布式消息中间件:核心原理与最佳实践

李伟 (作者) 

  • 书  号:978-7-121-39267-2
  • 出版日期:2020-07-31
  • 页  数:276
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:南海宝
电子书 ¥55.30
购买电子书
纸质版 ¥79.00
本书源码以RocketMQ 4.2.0和RocketMQ 4.3.0为基础,从RocketMQ的实际使用到RocketMQ的源码分析,再到RocketMQ企业落地实践方案,逐步讲解。使读者由浅入深地了解RocketMQ。
本书在源码分析过程中,先讲整体流程,再按模块、步骤进行详细讲解,希望读者在阅读时能举一反三,能知其然且知其所以然。
本书总共九章,分为五部分,第一部分讲解消息队列入门和RocketMQ生产、消费原理与最佳实践;第二部分从整体角度讲解RocketMQ架构;第三部分讲解RocketMQ各个组件的基本原理;第四部分深入RocketMQ,讲解如何阅读源代码、如何进行企业实践;第五部分是附录,包含Namesrv、Broker的核心参数配置说明和Exporter监控指标注释。
希望读者在平时的工作中能熟悉、借鉴、参考RocketMQ的优秀设计理念,在技术能力上更进一步,在工作中更好地服务公司。

希望读者在平时的工作中能熟悉、借鉴、参考RocketMQ的优秀设计理念,在技术能力上更进一步,在工作中更好地服务公司。
金融级可靠|纳秒级延迟|万亿级消息吞吐|海量Topic支持|超大规模堆积支持

前  言




为什么要写这本书
2020年处于移动互联网的下半场,各种技术层出不穷,虽然数据也在爆发增长,但是高并发、高吞吐已经不再是首要的痛点,稳定、可靠才是王道。
RocketMQ作为一款高可靠、低延迟、高并发、支持海量Topic的分布式消息中间件,服务于阿里巴巴、VIPKID、滴滴出行、微众银行、华为等国内各大厂。在阿里巴巴内的业务涵盖了阿里巴巴全部的业务,也是双11的核心链路支撑者之一。笔者所在公司选择它也是由于RocketMQ具有高可靠、吞吐高的特点。
笔者早期接触RocketMQ时,社区的中文文档、原理讲解还是比较少的。一个偶然的机会,笔者结识了Apache RocketMQ社区的维护者,随即加入了社区,编撰文档、提交PR。在社区工作的过程中,笔者发现使用RocketMQ的企业非常多,而大家却缺乏入门之径和实际落地经验。后来,在一次社区MeetUp中,有幸和电子工业出版社的南编相识,这才萌发了写本书总结的想法。
书籍是人类进步的阶梯,笔者在编写本书的时候才真正有所体会。笔者带着总结落地经验和了解RocketMQ原理的目标来编写本书,目的是使其他使用者可以参考、借鉴,不用重复掉入我们曾经掉过的坑。


读者对象
? 对RocketMQ有了解、使用的经验后,想要深入源码而无从下手的人员。
? 希望学习消息队列和分布式系统的开发人员。
? 企业消息中间件维护和支持人员。
? RocketMQ代码贡献者。
? 支持开源的技术工作者。

如何阅读本书
本书的难度属于中级,介绍了RocketMQ的基本使用方法及其各个组件的基本原理,讲解原理时,都是采用先整体架构后详细分解的方式。
详细分解时不会深入源码逐段讲,而是从代码结构出发梳理整个运行过程。
本书分为五大部分。
第一部分包含第1章、第2章和第3章。主要讲解消息队列入门和RocketMQ生产者、消费者原理与最佳实践。
第二部分包含第4章,主要介绍RocketMQ的架构设计和部署实践,也为第三部分的讲解做铺垫。
第三部分包含第5章、第6章和第7章,主要讲解RocketMQ核心组件Namesrv、Broker的基本实现原理、RocketMQ事务消息和延迟消息的设计和实现。
第四部分包含第8章和第9章,主要讲解如何阅读源代码和企业实践。
第五部分是附录,主要列举了Namesrv、Broker的核心配置项和Prometheus Exporter的指标说明。

勘误与支持
由于笔者水平有限、编撰仓促,书中难免会出现一些错误,恳请读者批评指正。如果您有更多宝贵意见和建议,请发送邮件到1026203200@qq.com,期待和您交流沟通RocketMQ的原理、问题与发展。

致谢
首先感谢我的公司、平台和同事,让我有机会可以比较深入地钻研和治理RocketMQ,
本书的完成是离不开大家的支持和鼓励的。
其次感谢Apache社区和社区维护者,更感谢RocketMQ的缔造者,正是因为大家的努力方才有如今优秀的RocketMQ。
最后,我要诚挚感谢电子工业出版社的南编等其他工作人员,有了大家的幕后默默工作,才有了本书的出版。

目录


目  录

第1章 RoketMQ综述 1
1.1 什么是消息队列 2
1.2 为什么需要消息队列 4
1.2.1 削峰填谷 4
1.2.2 程序间解耦 5
1.2.3 异步处理 6
1.2.4 数据的最终一致性 6
1.3 常见消息队列 7
1.4 RocketMQ的发展史与未来 9
1.4.1 RocketMQ的发展史 9
1.4.2 Apache RocketMQ的未来 11
第2章 RocketMQ的生产者原理和最佳实践 14
2.1 生产者原理 15
2.1.1 生产者概述 15
2.1.2 消息结构和消息类型 16
2.1.3 生产者高可用 17
2.2 生产者启动流程 22
2.3 消息发送流程 32
2.4 发送消息最佳实践 36
2.4.1 发送普通消息 36
2.4.2 发送顺序消息 37
2.4.3 发送延迟消息 37
2.4.4 发送事务消息 38
2.4.5 发送单向消息 40
2.4.6 批量消息发送 41
2.5 生产者最佳实践总结 42
第3章 RocketMQ的消费流程和最佳实践 44
3.1 消费者概述 45
3.1.1 消费流程 45
3.1.2 消费模式 46
3.1.3 可靠消费 48
3.2 消费者启动机制 50
3.3 消费者的Rebalance机制 58
3.4 消费进度保存机制 65
3.5 消费方式 70
3.5.1 Pull消费流程 71
3.5.2 Push消费流程 72
3.6 消息过滤 86
3.6.1 为什么要设计过滤功能 86
3.6.2 RocketMQ支持消息过滤 86
3.7 消费者最佳实践总结 91
第4章 RocketMQ架构和部署最佳实践 94
4.1 RocketMQ架构 95
4.2 常用的部署拓扑和部署实践 96
4.2.1 常用的拓扑图 96
4.2.2 同步复制、异步复制和同步刷盘、异步刷盘 97
4.2.3 部署实践 98
第5章 Namesrv 102
5.1 Namesrv概述 103
5.1.1 什么是Namesrv 103
5.1.2 Namesrv核心数据结构和API 103
5.1.3 Namesrv和Zookeeper 105
5.2 Namesrv架构 106
5.2.1 Namesrv组件 106
5.2.2 Namesrv启动流程 108
5.2.3 Namesrv停止流程 110
5.3 RocketMQ的路由原理 111
5.3.1 路由注册 111
5.3.2 路由剔除 112
第6章 Broker存储机制 114
6.1 Broker概述 115
6.1.1 什么是Broker 115
6.1.2 Broker存储目录结构 116
6.1.3 Broker启动和停止流程 117
6.2 Broker存储机制 125
6.2.1 Broker消息存储结构 126
6.2.2 Broker消息存储机制 130
6.2.3 Broker读写分离机制 150
6.3 Broker CommitLog索引机制 155
6.3.1 索引的数据结构 155
6.3.2 索引的构建过程 158
6.3.3 索引如何使用 159
6.4 Broker过期文件删除机制 162
6.4.1 CommitLog文件的删除过程 162
6.4.2 Consume Queue、Index File文件的删除过程 166
6.5 Broker主从同步机制 167
6.5.1 主从同步概述 168
6.5.2 主从同步流程 169
6.6 Broker的关机恢复机制 174
6.6.1 Broker关机恢复概述 174
6.6.2 Broker关机恢复流程 177
第7章 RocketMQ特性——事务消息与延迟消息机制 182
7.1 事务消息概述 183
7.2 事务消息机制 184
7.2.1 生产者发送事务消息和执行本地事务 184
7.2.2 Broker存储事务消息 188
7.2.3 Broker回查事务消息 191
7.2.4 Broker提交或回滚事务消息 197
7.3 延迟消息概述 201
7.4 延迟消息机制 203
7.4.1 延迟消息存储机制 203
7.4.2 延迟消息投递机制 205
第8章 RocketMQ源代码阅读 208
8.1 RocketMQ源代码结构概述 209
8.2 RocketMQ源代码编译 212
8.3 如何阅读源代码 214
8.4 源代码阅读范例:通过消息id查询消息 216
第9章 RocketMQ企业最佳实践 224
9.1 RocketMQ落地概述 225
9.1.1 为什么选择RocketMQ 225
9.1.2 如何做RocketMQ的集群管理 226
9.2 RocketMQ集群管理 230
9.2.1 Topic管理 230
9.2.2 消费者管理 235
9.3 RocketMQ集群监控和报警 240
9.3.1 监控和报警架构 240
9.3.2 基于Grafana监控 242
9.3.3 基于Prometheus的报警 243
9.4 RocketMQ集群迁移 244
9.5 RocketMQ测试环境实践 245
9.6 RocketMQ接入实践 247
9.6.1 Spring接入RocketMQ 247
9.6.2 Python接入RocketMQ 249
附录 252

读者评论

电子书版本

  • Epub

相关博文

  • 大揭秘!RocketMQ如何管理消费进度

    大揭秘!RocketMQ如何管理消费进度

    博文小编 2021-01-12

    在企业实践RocketMQ时基本上80%都是不消费问题,而由于消费进度问题导致不消费的问题又是最难确认的和排查的。RocketMQ的消费进度分为本地消费进度管理和远程消费进度管理,分别对应的消费模式是广播消费和集群消费。 本文选自...

    博文小编 2021-01-12
    1585 0 0 0

相关图书

亿级流量系统架构设计与实战

李琛轩 (作者)

本书涵盖了亿级用户应用后台通用的技术和系统架构设计思路,在内容结构上分为三大篇:架构知识篇(第1~3章),作为全书的基础知识篇,首先介绍后台的关键组件构成以及机...

 

算法笔记(第2版)

刁瑞 谢妍 (作者)

ChatGPT掀起了现象级的风暴,赶超ChatGPT潮流,算法突破是关键。 本书介绍了若干常见算法,涉及排序、哈希、动态规划与近似算法、高斯消去法、图论与线性...

 

看漫画学Python:有趣、有料、好玩、好用(全彩修订版)

关东升 赵大羽 (作者)

ython是一门既简单又强大的编程语言,被广泛应用于数据分析、大数据、网络爬虫、自动化运维、科学计算和人工智能等领域。Python也越来越重要,成为国家计算机等...

 

Linux从入门到精通

张启玉 (作者)

本书以CentOS 7.8为演示系统,以阿里云为演示服务器,从Linux常用命令入手,从一毕业就要入职公司的上手要求出发,重实战、轻原理,目的就是要带领读者从一...

 

看漫画学Python 2:有趣、有料、好玩、好用(全彩进阶版)

关东升 ,赵大羽 (作者)

本书是《看漫画学Python》的进阶版本,继续秉承有趣、有料、好玩、好用的理念,并继续采用《看漫画学Python》一书中3个不同的漫画人物角色,通过这3个角色之...

 

趣玩Python:自动化办公真简单(双色+视频版)

本书以数据收集→数据清洗→数据分析→数据可视化→根据数据可视化结果(即图表)做决策为脉络,介绍Python在实际工作场景中的应用,侧重于用Python解决工作中...