RocketMQ实战与原理解析

RocketMQ实战与原理解析

编辑推荐

本书是一本非常具有实战意义的手册,可以帮助工程师快速了解RocketMQ并展开实操。

内容简介

全书共13章,分为两个部分。第一部分是RocketMQ实战,包括第1~8章。第1章是快速入门,让读者了解分布式消息队列的功能,了解RocketMQ,能够搭建好单机版的消息队列,收发消息;第2章是让读者快速地把消息队列用好,应用到生产环境中;第3章具体介绍不同类型生产者和消费者的特点,以及和它们相关的Offset和Log;第4章介绍了分布式消息队列的协调者NameServer,NameServer维护集群的配置信息、状态信息,其他角色都通过NameServer来协同执行;第5章介绍了RocketMQ的内部机制,包括接收Producer发过来的消息、处理Consumer的消费请求、消息的持久化存储、消息的HA机制以及服务端过滤功能等;第6章讨论可靠性,解决如何让消息队列在满足业务逻辑需求的同时稳定、可靠地长期运行。第7章讨论在大流量场景下,吞吐量优先时RocketMQ的使用方法;第8章介绍RocketMQ和其他系统对接的方法。第二部分包括第9~13章,对RocketMQ的源码进行了深入分析,读者通过这些源码分析,可以快速定制自己的特殊功能。

作者简介

作者杨开元,阿里巴巴数据专家,毕业于北京大学,有10年IT行业研发经验。对RocketMQ有深入的研究,是RocketMQ源码贡献者。曾就职于甲骨文和猎豹移动,专注于大数据和实时计算。在大量的工作实践中,对MySQL、J2EE、JVM、Spring、Hadoop、Kafka、Storm、Flink都有深入研究。喜欢剖析源码,分析原理,为开源项目贡献代码。

章节目录

版权信息

推荐序

前言

第1章 快速入门

1.1 消息队列功能介绍

1.1.1 应用解耦

1.1.2 流量消峰

1.1.3 消息分发

1.2 RocketMQ简介

1.3 快速上手RocketMQ

1.3.1 RocketMQ的下载、安装和配置

1.3.2 启动消息队列服务

1.3.3 用命令行发送和接收消息

1.3.4 关闭消息队列

1.4 本章小结

第2章 生产环境下的配置和使用

2.1 RocketMQ各部分角色介绍

2.2 多机集群配置和部署

2.2.1 启动多个NameServer和Broker

2.2.2 配置参数介绍

2.3 发送/接收消息示例

2.4 常用管理命令

2.5 通过图形界面管理集群

2.6 本章小结

第3章 用适合的方式发送和接收消息

3.1 不同类型的消费者

3.1.1 DefaultMQPushConsumer的使用

3.1.2 DefaultMQPushConsumer的处理流程

3.1.3 DefaultMQPushConsumer的流量控制

3.1.4 DefaultMQPullConsumer

3.1.5 Consumer的启动、关闭流程

3.2 不同类型的生产者

3.2.1 DefaultMQProducer

3.2.2 发送延迟消息

3.2.3 自定义消息发送规则

3.2.4 对事务的支持

3.3 如何存储队列位置信息

3.4 自定义日志输出

3.5 本章小结

第4章 分布式消息队列的协调者

4.1 NameServer的功能

4.1.1 集群状态的存储结构

4.1.2 状态维护逻辑

4.2 各个角色间的交互流程

4.2.1 交互流程源码分析

4.2.2 为何不用ZooKeeper

4.3 底层通信机制

4.3.1 Remoting模块

4.3.2 协议设计和编解码

4.3.3 Netty库

4.4 本章小结

第5章 消息队列的核心机制

5.1 消息存储和发送

5.2 消息存储结构

5.3 高可用性机制

5.4 同步刷盘和异步刷盘

5.5 同步复制和异步复制

5.6 本章小结

第6章 可靠性优先的使用场景

6.1 顺序消息

6.1.1 全局顺序消息

6.1.2 部分顺序消息

6.2 消息重复问题

6.3 动态增减机器

6.3.1 动态增减NameServer

6.3.2 动态增减Broker

6.4 各种故障对消息的影响

6.5 消息优先级

6.6 本章小结

第7章 吞吐量优先的使用场景

7.1 在Broker端进行消息过滤

7.1.1 消息的Tag和Key

7.1.2 通过Tag进行过滤

7.1.3 用SQL表达式的方式进行过滤

7.1.4 Filter Server方式过滤

7.2 提高Consumer处理能力

7.3 Consumer的负载均衡

7.3.1 DefaultMQPushConsumer的负载均衡

7.3.2 DefaultMQPullConsumer的负载均衡

7.4 提高Producer的发送速度

7.5 系统性能调优的一般流程

7.6 本章小结

第8章 和其他系统交互

8.1 在SpringBoot中使用RocketMQ

8.1.1 直接使用

8.1.2 通过Spring Messaging方式使用

8.2 直接使用云上RocketMQ

8.3 RocketMQ与Spark、Flink对接

8.4 自定义开发运维工具

8.4.1 开源版本运维工具功能介绍

8.4.2 基于Tools模块开发自定义运维工具

8.5 本章小结

第9章 首个Apache中间件顶级项目

9.1 RocketMQ的前世今生

9.2 Apache顶级项目(TLP)之路

9.3 源码结构

9.4 不断迭代的代码

9.5 本章小结

第10章 NameServer源码解析

10.1 模块入口代码的功能

10.1.1 入口函数

10.1.2 解析命令行参数

10.1.3 初始化NameServer的Controller

10.2 NameServer的总控逻辑

10.3 核心业务逻辑处理

10.4 集群状态存储

10.5 本章小结

第11章 最常用的消费类

11.1 整体流程

11.1.1 上层接口类

11.1.2 DefaultMQPushConsumer的实现者

11.1.3 获取消息逻辑

11.2 消息的并发处理

11.2.1 并发处理过程

11.2.2 ProcessQueue对象

11.3 生产者消费者的底层类

11.3.1 MQClientInstance类的创建规则

11.3.2 MQClientInstance类的功能

11.4 本章小结

第12章 主从同步机制

12.1 同步属性信息

12.2 同步消息体

12.3 sync_master和async_master

12.4 本章小结

第13章 基于Netty的通信实现

13.1 Netty介绍

13.2 Netty架构总览

13.2.1 重新实现ByteBuffer

13.2.2 统一的异步I/O接口

13.2.3 基于拦截链模式的事件模型

13.2.4 高级组件

13.3 Netty用法示例

13.3.1 Discard服务器

13.3.2 查看收到的数据

13.4 RocketMQ基于Netty的通信功能实现

13.4.1 顶层抽象类

13.4.2 自定义协议

13.4.3 基于Netty的Server和Client

13.5 本章小结

RocketMQ实战与原理解析是2018年由机械工业出版社华章分社出版,作者杨开元。

得书感谢您对《RocketMQ实战与原理解析》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
深度学习原理与实践 电子书

(1)大量图例,简单易懂。作者亲自绘制了大量插图,力求还原深度学习的算法思想,分解和剖析晦涩的算法,用图例来表示复杂的问题。生动的图例也能给读者带来阅读乐趣,快乐地学习算法知识...
大数据原理与技术 电子书

本书则是华为公司针对华为ICT学院大数据方向的在读学生,专门组织合作伙伴和华为公司内部员工开发的标准化教材,这套教材的目的在于循序渐进地帮助华为ICT学院大数据方向的学生掌握大...
字体故事:六大字体设计原理及实战应用 电子书

这是一本从汉字原理和造字结构出发,结合游戏、商业品牌、电影等实际案例的字体设计方法论图书。
破冰区块链:原理、搭建与案例 电子书

拒绝浮躁,让区块链创造真正的价值。
Flutter开发实例解析 电子书

一线移动跨端工程师,一手实战经验,通过7个完整实战项目手把手教你快速入门Flutter。
游戏引擎原理与实践 卷1:基础框架 电子书

着重讲解游戏引擎的基础知识和工作原理,并结合配套的游戏引擎示例和详尽的代码,介绍游戏引擎开发的技术细节。