基本信息
作者: 杨开元
丛书名: 云栖社区系列
出版社:机械工业出版社
ISBN:9787111600251
上架时间:2018-6-11
出版日期:2018 年6月
开本:16开
版次:1-1
所属分类:计算机
目录
推荐序
前言
第1章 快速入门1
1.1 消息队列功能介绍1
1.1.1 应用解耦1
1.1.2 流量消峰2
1.1.3 消息分发3
1.2 RocketMQ简介4
1.3 快速上手RocketMQ4
1.3.1 RocketMQ的下载、安装和配置 5
1.3.2 启动消息队列服务6
1.3.3 用命令行发送和接收消息6
1.3.4 关闭消息队列6
1.4 本章小结7
第2章 生产环境下的配置和使用8
2.1 RocketMQ各部分角色介绍8
2.2 多机集群配置和部署9
2.2.1 启动多个NameServer和Broker10
2.2.2 配置参数介绍11
2.3 发送/接收消息示例13
2.4 常用管理命令15
2.5 通过图形界面管理集群21
2.6 本章小结22
第3章 用适合的方式发送和接收消息23
3.1 不同类型的消费者23
3.1.1 DefaultMQPushConsumer的使用23
3.1.2 DefaultMQPushConsumer的处理流程25
3.1.3 DefaultMQPushConsumer的流量控制28
3.1.4 DefaultMQPullConsumer30
3.1.5 Consumer的启动、关闭流程32
3.2 不同类型的生产者33
3.2.1 DefaultMQProducer 34
3.2.2 发送延迟消息36
3.2.3 自定义消息发送规则36
3.2.4 对事务的支持37
3.3 如何存储队列位置信息38
3.4 自定义日志输出42
3.5 本章小结44
第4章 分布式消息队列的协调者45
4.1 NameServer的功能45
4.1.1 集群状态的存储结构46
4.1.2 状态维护逻辑47
4.2 各个角色间的交互流程48
4.2.1 交互流程源码分析48
4.2.2 为何不用ZooKeeper50
4.3 底层通信机制50
4.3.1 Remoting模块51
4.3.2 协议设计和编解码54
4.3.3 Netty库56
4.4 本章小结56
第5章 消息队列的核心机制57
5.1 消息存储和发送57
5.2 消息存储结构58
5.3 高可用性机制60
5.4 同步刷盘和异步刷盘61
5.5 同步复制和异步复制62
5.6 本章小结63
第6章 可靠性优先的使用场景64
6.1 顺序消息64
6.1.1 全局顺序消息64
6.1.2 部分顺序消息65
6.2 消息重复问题67
6.3 动态增减机器67
6.3.1 动态增减NameServer67
6.3.2 动态增减Broker69
6.4 各种故障对消息的影响70
6.5 消息优先级72
6.6 本章小结73
第7章 吞吐量优先的使用场景74
7.1 在Broker端进行消息过滤74
7.1.1 消息的Tag和Key74
7.1.2 通过Tag进行过滤75
7.1.3 用SQL表达式的方式进行过滤75
7.1.4 Filter Server方式过滤77
7.2 提高Consumer处理能力78
7.3 Consumer的负载均衡80
7.3.1 DefaultMQPushConsumer的负载均衡80
7.3.2 DefaultMQPullConsumer的负载均衡81
7.4 提高Producer的发送速度83
7.5 系统性能调优的一般流程85
7.6 本章小结87
第8章 和其他系统交互88
8.1 在SpringBoot中使用RocketMQ88
8.1.1 直接使用88
8.1.2 通过Spring Messaging方式使用90
8.2 直接使用云上RocketMQ91
8.3 RocketMQ与Spark、Flink对接93
8.4 自定义开发运维工具93
8.4.1 开源版本运维工具功能介绍94
8.4.2 基于Tools模块开发自定义运维工具95
8.5 本章小结96
第9章 首个Apache中间件顶级项目97
9.1 RocketMQ的前世今生97
9.2 Apache顶级项目(TLP)之路98
9.3 源码结构99
9.4 不断迭代的代码100
9.5 本章小结102
第10章 NameServer源码解析103
10.1 模块入口代码的功能103
10.1.1 入口函数103
10.1.2 解析命令行参数104
10.1.3 初始化NameServer的Controller105
10.2 NameServer的总控逻辑106
10.3 核心业务逻辑处理107
10.4 集群状态存储109
10.5 本章小结111
第11章 最常用的消费类112
11.1 整体流程112
11.1.1 上层接口类112
11.1.2 DefaultMQPushConsumer的实现者114
11.1.3 获取消息逻辑116
11.2 消息的并发处理118
11.2.1 并发处理过程118
11.2.2 ProcessQueue对象121
11.3 生产者消费者的底层类122
11.3.1 MQClientInstance类的创建规则122
11.3.2 MQClientInstance类的功能124
11.4 本章小结127
第12章 主从同步机制128
12.1 同步属性信息128
12.2 同步消息体130
12.3 sync_master和async_master132
12.4 本章小结134
第13章 基于Netty的通信实现135
13.1 Netty介绍135
13.2 Netty架构总览136
13.2.1 重新实现ByteBuffer136
13.2.2 统一的异步 I/O接口137
13.2.3 基于拦截链模式的事件模型138
13.2.4 高级组件139
13.3 Netty用法示例140
13.3.1 Discard服务器140
13.3.2 查看收到的数据144
13.4 RocketMQ基于Netty的通信功能实现145
13.4.1 顶层抽象类145
13.4.2 自定义协议148
13.4.3 基于Netty的Server和Client151
13.5 本章小结152
↑折 叠
前言
为什么要写这本书
几年前在做一个项目的时候,若需要用到消息队列,简单调研一下就会决定用Kafka,因为当时还不知道有RocketMQ。在我加入阿里后,当时有个项目需要用到消息中间件,试用了RocketMQ,发现阿里开源的消息中间件性能非常强大,但是上手有点费劲,因为现有文档多是零零散散的博文。在没有合适文档指导的情况下,对系统中用到的RocketMQ模块心里没底,系统偶尔出现异常时总会束手无策,需要通过查看很多源码,才能保证系统的稳定运行。
熟悉RocketMQ以后,我发现它是一款非常优秀的中间件产品,可以确保不丢消息,而且效率很高。同时因为它是用Java开发的,所以修改起来比较容易。
在阿里内部,RocketMQ很好地服务了集团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级消息通过RocketMQ流转(在2017年的双11当天,整个阿里巴巴集团通过RocketMQ流转的线上消息达到了万亿级,峰值TPS达到5600万),在阿里大中台策略上发挥着举足轻重的作用。所以如果有合适的参考文档,RocketMQ会被更多人接受和使用,让更多人不必重复造“轮子”。
我做了很多年开发,在学校课本上学的开发知识有限,大多数是通过看书和上网学到的,其中很多优秀的文章对自己帮助很大。所以我很希望能用这本书回馈技术社区中有需要的开发者们。
动笔写这本书前,我系统地阅读了RocketMQ的源码,有些理解不够透彻的地方请教了阿里RocketMQ开发团队的同事,然后也总结了自己多年实际工作中的一些经验。希望这本书能简明扼要地说清楚RocketMQ的使用方法和核心原理。
读者对象
希望学习分布式系统或分布式消息队列的开发人员。
服务端系统开发者,他们可以借助高质量中间件来提高开发效率。
软件架构师,他们可以通过消息队列优化复杂系统的设计。
不止于“如何做”,更在于“为何如此”的深度洞察 在接触RocketMQ之前,我曾阅读过一些关于消息队列的入门书籍,它们大多侧重于API的使用和基本概念的介绍,对于底层原理的讲解往往是点到为止,留下了许多“黑盒”的疑问。而《现货RocketMQ实战与原理解析》这本书,则完全打破了这种模式。作者并没有满足于停留在“如何配置、如何部署”的层面,而是将大量的篇幅用于深入剖析RocketMQ的“心脏”——其核心架构和工作原理。我特别喜欢书中对消息发送、存储、消费等关键流程的源码级解读,通过循序渐进的讲解,我得以窥见RocketMQ在海量消息吞吐量背后所付出的精巧设计。例如,在解释消息路由机制时,作者结合了NameServer的查找过程、Broker的注册与发现,以及Producer如何根据Broker的状态选择合适的Broker进行发送,整个过程的逻辑链条清晰可见。同样,对于消息消费的顺序性保障、幂等性处理等复杂场景,书中也给出了非常深入的分析,并提供了多种实用的解决方案。这种“知其然,更知其所以然”的学习体验,让我对RocketMQ的理解上升到了一个全新的高度,也让我更有信心去应对各种复杂的技术挑战,而不是仅仅停留在“调参侠”的阶段。
评分细节控的福音,生产级部署的必备指南! 作为一名有多年分布式系统开发经验的工程师,我深知在生产环境中部署和维护一个可靠的消息队列系统是多么地重要且充满挑战。过去的经验告诉我,理论知识固然重要,但真正能够指导我们在复杂的生产环境中解决实际问题的,往往是那些对细节有极致追求的实战经验。《现货RocketMQ实战与原理解析》这本书,恰恰就是这样一本我梦寐以求的“神器”。作者在集群配置和部署设计方面的讲解,堪称教科书级别的严谨。从多Master、多Broker的集群拓扑选择,到数据同步、高可用策略的设计,再到负载均衡、故障转移的实现,每一个环节都剖析得入木三分。书中对于各种配置项的解释,不是简单的罗列,而是结合实际场景,分析其对系统性能、稳定性和可扩展性的影响,并给出明确的建议。例如,在讲解消息存储策略时,作者不仅介绍了不同的刷盘机制(sync, async),还详细阐述了在不同业务场景下应该如何权衡取舍。此外,书中还涉及到了网络优化、JVM调优、以及如何利用RocketMQ提供的监控工具进行实时观测和告警,这些内容对于确保系统在极端负载下的稳定运行至关重要。阅读这本书,我感觉像是拥有了一位经验丰富的“老兵”在身边手把手指导,每一个风险点都被提前预警,每一个性能瓶颈都被耐心化解。
评分代码之外的思考,让技术更具生命力! 很多时候,我们学习一项新技术,往往会陷入到代码和API的海洋中,而忽略了更深层次的技术哲学和设计思想。《现货RocketMQ实战与原理解析》这本书,在这一点上做得非常出色。作者在讲解技术细节的同时,也穿插了许多关于分布式系统设计理念的思考。例如,在探讨消息队列在微服务架构中的作用时,作者不仅强调了其解耦和异步的能力,还深入分析了如何利用消息队列来实现服务间的最终一致性,以及如何设计合理的容错机制来应对网络分区和节点故障。书中对于“CAP理论”、“BASE理论”等分布式系统的经典理论在RocketMQ中的体现,也进行了详实的解读。这种将理论与实践巧妙结合的叙事方式,让我不仅学会了如何使用RocketMQ,更理解了它为何如此设计,以及在更宏观的分布式系统领域,它扮演着怎样的角色。阅读这本书,让我感到不仅仅是在学习一个技术工具,更是在进行一场关于分布式系统演进和未来趋势的深度对话。这种“代码之外的思考”,让技术学习变得更加生动和富有生命力。
评分从小白到专家的蜕变之路,云栖社区的智慧结晶! 作为一名长期关注云栖社区技术动态的开发者,我对杨开元老师在RocketMQ领域的深耕和贡献早有耳闻。当得知他推出了这本《现货RocketMQ实战与原理解析》时,我毫不犹豫地入手了。这本书的出版,无疑是云栖社区在分布式系统领域又一次宝贵的财富。它不仅凝聚了作者多年在RocketMQ一线实战的经验,更将这些宝贵的知识系统化、结构化地呈现给读者。书中大量的案例分析和实操指导,让我能够迅速将书本知识转化为实际能力。从最初一个对RocketMQ一无所知的“小白”,到如今能够独立设计和部署一套满足高可用、高性能要求的RocketMQ集群,我感到自己的技术能力得到了质的飞跃。书中对于集群的容灾演练、性能压测以及监控告警体系的搭建,都提供了非常详细的指导,这些都是在真实生产环境中不可或缺的环节。此外,作者在书中还对RocketMQ的未来发展方向进行了一些探讨,这让我对这个技术领域保持了持续的关注和学习的热情。这本书不愧是云栖社区的“明星产品”,它为无数像我一样的开发者提供了宝贵的学习资源和实践指导。
评分初入RocketMQ,如获至宝! 我之前一直对分布式消息队列的概念有所耳闻,但真正涉及到实际应用,心里还是有些打鼓。正好手头上有一个项目需要引入消息队列来解耦和异步处理,经过一番调研,RocketMQ凭借其高性能、高可用以及国产自研的优势,成为了我的首选。然而,从零开始搭建和配置一个稳定的RocketMQ集群,对我这样一个初学者来说,无疑是一项巨大的挑战。幸运的是,我发现了这本《现货RocketMQ实战与原理解析》。收到书的那一刻,沉甸甸的厚度就给了我极大的信心。第一眼翻开,我就被书中清晰的章节结构和由浅入深的讲解方式所吸引。从最基础的RocketMQ概念介绍、架构演进,到集群的搭建、配置,再到实际生产环境中的各种优化和疑难杂症的解决,这本书几乎覆盖了所有我能想到的和可能遇到的问题。作者以一种非常接地气的方式,将复杂的原理拆解开来,用生动的比喻和详细的步骤,一步步引导读者走向成功。尤其让我印象深刻的是关于NameServer、Broker、Producer、Consumer之间通信机制的深入剖析,以及各种参数的含义和最佳实践,这对于理解RocketMQ的运行原理至关重要,也为我后续的性能调优打下了坚实的基础。这本书不仅仅是一本操作手册,更是一本思想的启迪者,让我真正理解了RocketMQ为何如此强大,又该如何更好地驾驭它。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有