书籍详情

RocketMQ消息中间件实战派(上下册)

RocketMQ消息中间件实战派(上下册)

作者:胡弦

出版社:电子工业出版社

出版时间:2024-01-01

ISBN:9787121469701

定价:¥236.00

购买这本书可以去
内容简介
  本书覆盖了开发人员在落地分布式架构过程中使用RocketMQ 的主要技术点,包括RocketMQ 的 高性能通信渠道、生产消息、消费消息、存储消息、分布式事务消息、消息的可追踪性、消息的稳定性、消息的高并发、消息的高可用、消息的高性能和RocketMQ 5.x 的新特性。采用"是什么→怎么用→什么原理(源码分析)”的主线来讲解这些技术点。 本书的主要目标:①让读者在动手中学习,而不是"看书时好像全明白了,一动手却发现什么都不会”;②让读者掌握整个RocketMQ 生态的全栈技术和最佳实践,而不是只有RocketMQ 框架;③让读者从RocketMQ 体系化的视角熟悉RocketMQ 的核心原理,而不是零散且碎片化;④让读者成为消息中间件领域的技术专家或架构师,而不只是熟悉RocketMQ;⑤让读者具备自研消息中间件的能力,而不是仅停留在源码分析的层次,"授人以鱼,不如授人以渔”是本书最大的宗旨。 本书适合对分布式架构及支撑分布式架构落地的中间件感兴趣的技术开发人员。无论读者是否接触过 分布式消息中间件,只要具备一定的Java 开发基础,都能通过本书的学习快速掌握分布式架构中消息中间件的开发技能,并利用RocketMQ 消息中间件支撑分布式架构的落地。
作者简介
  曾就职于网易考拉、微医集团、连连支付、政采云等杭州一线独角兽公司,高级技术专家(P8)和业务负责人,具备跨境电商、跨境支付等业务领域0-1的架构设计和开发落地能力,擅长高并发、高可用、和高性能系统架构设计。
目录
第1 篇 基础
第1 章 初识RocketMQ ·························.2
1.1 认识分布式架构 ····························.2
1.1.1 什么是分布式 ·······················.2
1.1.2 什么是架构 ··························.3
1.1.3 分布式架构的冰与火 ··············.5
1.2 认识RocketMQ ·····························.7
1.2.1 什么是RocketMQ ··················.7
1.2.2 RocketMQ 与分布式架构 ·······.12
1.3 搭建RocketMQ 环境 ····················.13
1.3.1 了解RocketMQ 相关的安装包 .13
1.3.2 搭建单Master 的单机环境 ·····.15
1.3.3 搭建多Master 的集群环境 ·····.15
1.3.4 搭建单Master 和单Slave 的集群环境 ·································.16
1.3.5 【实例】搭建Raft 集群环境 ··.18
1.4 RocketMQ 5.0 的新特性 ················.20
第2 章 实现通信渠道 ··························.22
2.1 认识通信渠道 ·····························.22
2.2 通信渠道的架构 ··························.25
2.2.1 认识Netty ·························.25
2.2.2 RocketMQ 通信渠道的架构 ····.29
2.3 使用Netty 实现通信渠道的原理 ······.33
2.3.1 实现通信渠道的通信协议 ······.33
2.3.2 实现客户端通信渠道 ············.38
2.3.3 实现服务端通信渠道 ············.41
2.4 使用客户端连接服务端 ·················.47
2.4.1 分析模块通信渠道的类型 ······.48
2.4.2 连接服务端 ························.50
2.5 【实例】修改通信渠道客户端和服务端的线程模型 ·······················.54
第3 章 消息路由信息的无状态存储和管理 ······································.61
3.1 了解消息路由信息 ·······················.61
3.2 Name Server 的架构 ·····················.68
3.2.1 认识无状态架构 ··················.68
3.2.2 认识Name Server 架构 ·········.69
3.2.3 认识地址服务架构 ···············.72
3.2.4 【实例】用地址服务动态更新客户端中的Name Server 节点的地址信息 ··························.74
3.3 “使用Name Server 存储和管理消息路由信息”的原理 ·······················.77
3.3.1 Name Server 的启动流程 ·······.77
3.3.2 注册Broker Server ···············.84
3.3.3 取消注册的业务场景和取消注册Broker Server ···············.89
3.3.4 存储和管理消息路由信息 ······.93
3.4 【实例】启动多个Name Server 节点,模拟故障以验证Name Server 节点的无状态性 ·································.101
第4 章 生产消息和消费消息 ···············.104
4.1 生产和消费消息的模式 ················.104
4.1.1 生产消息 ··························.104
4.1.2 消费消息 ··························.110
4.2 消费消息的类型 ·························.116
4.2.1 集群消息 ··························.116
4.2.2 广播消息 ··························.118
4.2.3 顺序消息 ··························.119
4.2.4 并发消息 ··························.125
4.2.5 延迟消息 ··························.126
4.2.6 事务消息 ··························.130
4.3 生产消息 ··································.134
4.3.1 生产者SDK 的3 种使用方式 ································.135
4.3.2 采用“同步”模式生产消息 ···.137
4.3.3 采用“异步”模式生产消息 ···.142
4.3.4 采用“最多发送一次”模式生产消息 ··························.148
4.4 消费消息 ··································.152
4.4.1 采用pull 模式消费消息 ········.153
4.4.2 采用push 模式消费消息 ·······.171
4.4.3 采用pop 模式消费消息 ········.183
4.5 采用“请求/应答”消息实现同步调用 ········································.197
4.5.1 “请求/应答”消息的架构 ····.197
4.5.2 分析“请求/应答”消息的过程 ································.198
4.6 【实例】生产者发送消息,消费者顺序地消费消息 ·························.212
4.6.1 验证“普通顺序消息” ········.212
4.6.2 验证“严格顺序消息” ········.217
第5 章 存储消息 ······························.219
5.1 认识存储引擎 ····························.219
5.1.1 什么是存储引擎 ·················.219
5.1.2 存储引擎的架构 ·················.221
5.2 认识存储模型 ····························.222
5.2.1 消息模型 ··························.222
5.2.2 文件模型 ··························.229
5.2.3 【实例】利用源码远程调试存储模型 ································.236
5.3 启动存储引擎 ····························.238
5.3.1 初始化Broker Server 和存储引擎 ································.238
5.3.2 启动Broker Server 和存储引擎 ································.247
5.3.3 【实例】动态修改存储引擎的配置参数 ··························.251
5.4 使用存储引擎处理“储存消息”的请求 ········································.253
5.4.1 接收并处理生产消息的请求 ································.254
5.4.2 存储消息 ··························.257
5.4.3 【实例】利用存储引擎实现批量地存储消息 ·······················.262
5.5 对比存储单条消息和批量消息的性能 ········································.263

第6 章 治理消息 ······························.268
6.1 如何治理消息 ····························.268
6.1.1 治理消息的目标 ·················.268
6.1.2 使用消息度量提供治理消息的依据 ································.276
6.1.3 使用消息管控实现治理消息的落地 ································.280
6.2 认识命令控制台和UI 控制台 ········.285
6.2.1 什么是命令控制台和UI控制台 ·····························.285
6.2.2 启动命令控制台和UI控制台 ·····························.289
6.2.3 使用对象池管理RocketMQDashboard 中通信渠道客户端的核心类 ·····························.292
6.3 使用命令控制台治理消息 ·············.298
6.3.1 执行治理消息的命令 ···········.299
6.3.2 【实例】使用命令控制台,完成
RocketMQ 集群的扩容 ·········.322
6.3.3 【实例】使用命令控制台,完成
RocketMQ 集群的缩容 ·········.325
6.3.4 【实例】使用命令控制台,动态增加Topic 的读/写消息队列的数量 ·················.332
6.4 使用UI 控制台治理消息 ··············.334
6.4.1 使用UI 控制台治理消息的原理 ································.335
6.4.2 【实例】使用UI 控制台手动地禁用消费者组 ····················.341
6.4.3 【实例
猜您喜欢

读书导航