基本信息


【插图】

编辑推荐
(1)RocketMQ由阿里开源,Apache*开源项目,经受多年“双十一”流量峰值考验,在多个性能指标上远超同类产品
(2)作者是阿里资深数据专家,有多年RocketMQ使用经验,深入研究RocketMQ源代码,写作前与RocketMQ官方团队有深入沟通
(3)云栖社区官方出品,得到RocketMQ官方研发团队以及业界的多位专家的肯定和推荐
内容简介
计算机书籍
本书由云栖社区官方出品。
作者是阿里资深数据专家,对RocketMQ有深入的研究,并有大量的实践经验。在写这本书之前,作者不仅系统、深入地阅读了RocketMQ的源代码,而且还向RocketMQ的官方开发团队深入了解了它的诸多设计细节。作者结合自己多年使用RocketMQ的经验,从开发和运维两个维度,给出了大部分场景下的优秀实践,能帮助读者在学会使用和用好RocketMQ的同时,尽量少“踩坑”。同时,本书也结合源码分析了分布式消息队列的原理,使读者可以在复杂业务场景下定制有特殊功能的消息队列。
全书共13章,在逻辑上分为两大部分:
第一部分(第1~8章):RocketMQ实战
第1~2章详细讲解了RocketMQ如何快速入门,以及在生产环境下的配置和使用;
第3~4章具体讲解了不同类型生产者和消费者的特点,以及分布式消息队列的协调者NameServer;
第5章从消息的存储、发送、复制和高可用等多个维度讲解了RocketMQ的内部机制;
第6章讨论了消息的可靠性,如何让消息队列在满足业务逻辑需求的同时稳定、可靠地长期运行;
第7章讨论了在大流量场景下,吞吐量优先时RocketMQ的使用方法;
第8章介绍RocketMQ与SpringBoot、Spark、Flink以及自定义的运维工具等其它系统的对接方法;
第二部分(第9~13章):RocketMQ原理
首先对RocketMQ的源码结构进行了整体介绍,然后深入地分析了NameServer、各种常用消费类、主从同步机制,以及基于Netty的通信的源码实现。掌握这些源代码以后,读者可以快速定制属于自己的具有特殊功能的消息中间件。
作译者
阿里巴巴数据专家,毕业于北京大学,有10年IT行业研发经验。对RocketMQ有深入的研究,是RocketMQ源码贡献者。曾就职于甲骨文和猎豹移动,专注于大数据和实时计算。在大量的工作实践中,对MySQL、J2EE、JVM、Spring、Hadoop、Kafka、Storm、Flink都有深入研究。喜欢剖析源码,分析原理,为开源项目贡献代码。
云栖社区
云栖社区是面向开发者的开放型技术平台,服务于云计算技术全生态。包含博客、问答、培训、设计研发、资源下载等产品,以分享专业、优质、高效的技术为己任,帮助技术人快速成长与发展。
欢迎关注云栖社区微信公众号:yunqiinsight ,打开精彩代码生活!
目录
前言
第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
前言
几年前在做一个项目的时候,若需要用到消息队列,简单调研一下就会决定用Kafka,因为当时还不知道有RocketMQ。在我加入阿里后,当时有个项目需要用到消息中间件,试用了RocketMQ,发现阿里开源的消息中间件性能非常强大,但是上手有点费劲,因为现有文档多是零零散散的博文。在没有合适文档指导的情况下,对系统中用到的RocketMQ模块心里没底,系统偶尔出现异常时总会束手无策,需要通过查看很多源码,才能保证系统的稳定运行。
熟悉RocketMQ以后,我发现它是一款非常优秀的中间件产品,可以确保不丢消息,而且效率很高。同时因为它是用Java开发的,所以修改起来比较容易。
在阿里内部,RocketMQ很好地服务了集团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级消息通过RocketMQ流转(在2017年的双11当天,整个阿里巴巴集团通过RocketMQ流转的线上消息达到了万亿级,峰值TPS达到5600万),在阿里大中台策略上发挥着举足轻重的作用。所以如果有合适的参考文档,RocketMQ会被更多人接受和使用,让更多人不必重复造“轮子”。
我做了很多年开发,在学校课本上学的开发知识有限,大多数是通过看书和上网学到的,其中很多优秀的文章对自己帮助很大。所以我很希望能用这本书回馈技术社区中有需要的开发者们。
动笔写这本书前,我系统地阅读了RocketMQ的源码,有些理解不够透彻的地方请教了阿里RocketMQ开发团队的同事,然后也总结了自己多年实际工作中的一些经验。希望这本书能简明扼要地说清楚RocketMQ的使用方法和核心原理。
读者对象
希望学习分布式系统或分布式消息队列的开发人员。
服务端系统开发者,他们可以借助高质量中间件来提高开发效率。
软件架构师,他们可以通过消息队列优化复杂系统的设计。
本书特色
本书系统地介绍了RocketMQ这款优秀的分布式消息队列软件,通过阅读本书,读者可以快速把RocketMQ应用到自己的项目中,也可以通过更改源码定制符合自身业务的消息中间件。
如何阅读本书
本书分为两大部分:
第一部分是RocketMQ实战,包括第1~8章。这是本书的主体内容,可帮助读者快速用好RocketMQ这个分布式消息队列。
这部分是按照由浅入深的方式撰写的,为了让读者快速上手,首先介绍了搭建一个简单RocketMQ集群的方法,以此来发送和接收消息;然后详细介绍了如何用好Consumer和Producer,如何选择合适的类以及进行参数设置;再进一步根据应用,说明如何让RocketMQ在各种异常情况下保持稳定可靠,以及如何增大RocketMQ的吞吐量,从而在单位时间内处理更多的消息。
第二部分是源码分析,包括第9~13章。当读者有特殊的业务需求,需要更改或扩展RocketMQ现有功能的时候,这部分内容能帮助读者快速熟悉源码,找到要下手更改的地方,快速实现想要的功能。
这部分也适合想通过源码,深入学习消息队列的读者阅读。学习别人优秀的代码是提升自己技术水平的一条有效途径。
勘误和支持
由于水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。有任何的意见或建议,都可以通过邮箱rocketmqqa@163.com和我联系,真挚期待你的反馈。
序言
在阿里巴巴技术发展初期,伴随着淘宝业务的快速发展,网站流量呈现几何级增长。单体巨无霸式的应用无法处理爆发式增长的流量,阿里内部从业务、组织层面进行了一次大的水平与垂直切分,拆分出用户中心、商品中心、交易中心、评价中心等平台型应用,分布式电商系统的雏形由此诞生。阿里的消息引擎就是在这样的大背景下诞生的,并被应用于各个应用系统之间的异步解耦和削峰填谷。
从最初的日志传输领域到后来阿里集团全维度在线业务的支撑,RocketMQ被广泛用于交易、数据同步、缓存同步、IM通讯、流计算、IoT等场景。在近几年的双11全球狂欢节中,RocketMQ以万亿级的消息总量支撑了全集团3000多个应用,为复杂的业务场景提供了系统解耦、削峰填谷的能力,保障了核心交易链路消息流转的低延迟、高吞吐,为阿里集团大中台的稳定性发挥了举足轻重的作用。
为了更好地发展RocketMQ社区生态,2016年双11前后,阿里巴巴将RocketMQ捐赠给Apache基金会,吸引了全球的开源爱好者参与到RocketMQ社区中,并于2017年9月成为Apache基金会的顶级项目。在开源社区的帮助下,RocketMQ具备了对接主流大数据流计算平台、离在线数据处理以及对接存储平台的能力。
本书介绍了分布式消息中间件RocketMQ的方方面面,作者为大数据领域的技术专家,在分布式领域具有很丰富的理论积累和实战经验。书如其人,书中各章节尽展实战经验,庖丁解牛般剖析了Apache RocketMQ的原理和架构设计。本书深入浅出地分析了RocketMQ的整体架构,分享了部署和运维的经验,涵盖RocketMQ的核心特性—高可用、高可靠机制,以及开源生态等。
本书作为国内首本全面解析Apache RocketMQ的书籍,对于希望了解RocketMQ技术内幕,以及想要掌握分布式系统设计理念的技术人员来说的确不容错过。
—周新宇,Apache RocketMQ项目管理委员会成员
媒体评论
——王小瑞 阿里巴巴资深技术专家/ApacheRocketMQ PMC Chair
这是一本非常具有实战意义的手册,可以帮助工程师快速了解RocketMQ并展开实操。理论清晰,案例实用,体现了作者深厚的技术功底。
——夏振宇 微瑞思创董事长
消息中间件是分布式系统中依赖*广泛的中间件产品,作为Apache中间件*项目,RocketMQ已经经历了众多大型互联网公司的线上检验,不论是从可靠性还是吞吐量上都得到广泛的认可。相信这本书的出版,对正在使用和计划研究RockemMQ技术的开发者来说是个大大的福音。
——王晓东 凤凰金融高级副总裁从2013年开源至今,RocketMQ承载了阿里巴巴数年“双十一”的峰值流量,并且被业界多个大型互联网公司、大型央企和金融证券系统广泛使用。本书从开发和运维的双重视角对RocketMQ做了详细的阐述,既能满足入门读者的需求,又能满足需要通过源代码了解RocketMQ工作原理的中高端读者的需求。
——王小瑞 阿里巴巴资深技术专家/Apache
RocketMQ PMC Chair
这是一本非常具有实战意义的手册,可以帮助工程师快速了解RocketMQ并展开实操。理论清晰,案例实用,体现了作者深厚的技术功底。
——夏振宇 微瑞思创董事长
消息中间件是分布式系统中依赖*广泛的中间件产品,作为Apache中间件*项目,RocketMQ已经经历了众多大型互联网公司的线上检验,不论是从可靠性还是吞吐量上都得到广泛的认可。相信这本书的出版,对正在使用和计划研究RockemMQ技术的开发者来说是个大大的福音。
——王晓东 凤凰金融高级副总裁
消息队列是重要的中间件之一,已经成为大型应用不可或缺的组件。本书从原理和应用的角度对RocketMQ进行了详细的讲解,无论是入门还是进阶,本书都可以作为你的良师益友。
——张彦龙 滴滴出行高级数据专家
作者在RocketMQ领域有多年的一线开发、调优经验,他将以独到的方式带领你走上RocketMQ的进阶之路。本书可以帮助开发者,更加高效、快速地构建起分布式服务,将工程师从服务稳定性、分布式事务一致性的桎梏中解放出来。
——耿嘉安 360大数据专家
阿里自研的分布式消息中间件RocketMQ已是Apache软件基金会*项目。在“双11”大促中消息容量达到万亿级,适合电商、金融、大数据以及物联网领域。在如今技术自主可控的发展趋势下,相信RocketMQ会帮助更多开发者实现实践创新。