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

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
    463 0 0 0

相关图书

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

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

 

软件交付通识

董越 (作者)

软件交付过程是指在编程序改代码之后,直到将软件发布给用户使用之前的一系列活动,如提交、集成、构建、部署、测试等。本书作为通识类图书,对软件交付过程的各个方面进行...

¥89.00

Python一行流:像专家一样写代码

Christian Mayer (作者) 苏丹 (译者)

本书专注于从初学迈向进阶的Python编码技术:如何像专家一样写出优雅、准确、简洁高效的Python 单行代码;阅读任意一行Python 代码时,如何系统性地对...

¥89.00

剑指Offer(专项强化版):数据结构与算法名企面试题精讲

何海涛 (作者)

本书全面、系统地总结了在准备程序员面试过程中必备的数据结构与算法。本书首先详细讨论整数、数组、链表、字符串、哈希表、栈、队列、二叉树、堆和前缀树等常用的数据结构...

¥89.00

Spring Boot实战:从0开始动手搭建企业级项目

韩帅 (作者)

本书首先从Spring Boot基础知识部分讲起,涉及学习方法、技术趋势、开发环境和基础实践;然后是进阶应用部分,涉及核心源码、自动配置、模板引擎、数据库等分析...

¥138.00

算法训练营:海量图解+竞赛刷题(入门篇)

陈小玉 (作者)

本书以海量图解的形式,详细讲解常用的数据结构与算法,又融入大量的竞赛实例和解题技巧。通过对本书的学习,读者可掌握12种初级数据结构、15种常用STL函数、10种...