商品详情
书名:深入理解Kafka与Pulsar:消息流平台的实践与剖析
定价:138.0
ISBN:9787121440014
作者:梁国斌
版次:*1版
出版时间:2022-08
内容提要:
本书详细介绍了Kafka与Pulsar的使用方式,并深入分析了它们的实现机制。通过阅读本书,读者可以快速入门使用Kafka与Pulsar,并深入理解它们的实现原理。 本书通过大量实践示例介绍了Kafka与Pulsar的使用方式,包括管理脚本与客户端(生产者、消费者)的使用方式、关键的配置项、ACK提交方式等基础应用,以及安全机制、跨地域复制机制、连接器/流计算引擎、常用监控管理平台等*级应用。这些内容可以帮助读者深入掌握Kafka与Pulsar的使用方式,并完成日常管理工作。另外,本书深入分析了Kafka与Pulsar的实现原理,包括客户端(生产者、消费者)的设计与实现、Broker网络模型、主题(分区)分配与负载均衡机制,以及磁盘存储与性能优化方案、数据同步机制、扩容与故障转移机制。*后,本书介绍了Kafka与Pulsar的事务机制,并深入分析了Kafka事务的实现及Kafka*新的分布式协作组件KRaft模块。这部分内容可以帮助读者轻松理解Kafka与Pulsar的架构设计与实现原理。
作者简介:
后端*级开发,源码爱好者,对Netty、Spring、Redis、Kafka、Pulsar等中间件有深入研究,技术公众号binecy作者。
目录:
*1部分 基础应用
*1章 Kafka与Pulsar概述
1.1 简介
1.2 特性
1.3 概念
1.3.1 Kafka基础概念
1.3.2 Pulsar基础概念
1.4 本章总结
*2章 Kafka的部署与调试
2.1 安装Kafka集群
2.1.1 部署ZooKeeper集群
2.1.2 部署Kafka集群
2.2 调试Kafka
2.3 本章总结
第3章 Kafka的应用
3.1 脚本
3.1.1 主题管理
3.1.2 生产者与消费者
3.1.3 动态配置
3.2 客户端
3.2.1 生产者
3.2.2 消费者
3.3 消息序列化
3.4 配额
3.5 本章总结
第4章 Pulsar的部署与调试
4.1 本地部署
4.2 集群部署
4.2.1 ZooKeeper集群部署
4.2.2 初始化集群元数据
4.2.3 部署BookKeeper集群
4.2.4 部署Pulsar Broker
4.3 调试Pulsar
4.3.1 调试Pulsar Broker源码
4.3.2 调试BookKeeper
4.4 本章总结
第5章 Pulsar的应用
5.1 租户
5.2 命名空间
5.2.1 消息保留和过期
5.2.2 持久化策略
5.2.3 消息投递速率
5.3 主题
5.3.1 创建主题
5.3.2 发送、消费消息
5.3.3 管理主题
5.4 客户端
5.4.1 生产者
5.4.2 消费者
5.5 Schema
5.5.1 Schema的类型与使用示例
5.5.2 Schema演化与兼容
5.5.3 管理Schema
5.6 资源隔离
5.6.1 Broker隔离
5.6.2 Bookie隔离
5.7 兼容Kafka客户端
5.8 BookKeeper使用示例
5.9 本章总结
*2部分 客户端与Broker计算层
第6章 Kafka和Pulsar的架构
6.1 ZooKeeper的作用
6.2 Kafka的架构设计
6.2.1 元数据管理
6.2.2 发布/订阅模式
6.2.3 磁盘存储的设计与优化
6.2.4 数据副本
6.2.5 系统伸缩
6.2.6 故障转移
6.3 Pulsar的架构设计
6.3.1 Pulsar的计算层
6.3.2 Pulsar的存储层
6.3.3 系统伸缩
6.3.4 故障转移
6.4 源码架构
6.4.1 Kafka
6.4.2 Pulsar
6.4.3 BookKeeper
6.5 本章总结
第7章 Kafka的主题
7.1 CreateTopics请求的处理流程
7.1.1 创建主题
7.1.2 分区副本分配规则
7.1.3 存储主题元数据
7.2 KafkaController处理新主题
7.3 本章总结
第8章 Kafka的生产者与消息发布
8.1 生产者发送消息
8.1.1 消息发送流程
8.1.2 消息累积器与消息批次
8.1.3 Sender线程
8.1.4 TCP通信协议
8.1.5 元数据刷新机制
8.2 Broker接收消息
8.2.1 Broker处理消息流程
8.2.2 延迟操作与时间轮
8.3 本章总结
第9章 Kafka的消费者与消息订阅
9.1 消费组协作机制
9.1.1 分区分配器
9.1.2 重平衡的设计
9.1.3 实战:使用CooperativeStickyAssignor分区分配器
9.1.4 重平衡的实现
9.2 心跳与元数据更新
9.3 ACK管理
9.3.1 消费者初始化偏移量
9.3.2 ACK偏移量的提交与存储
9.4 读取消息
9.4.1 消费者发送Fetch请求
9.4.2 Broker处理Fetch请求
9.5 本章总结
*10章 Pulsar的主题
10.1 租户与命名空间
10.2 主题
10.2.1 创建主题
10.2.2 初始化主题
10.2.3 绑定主题
10.3 Broker负载均衡
10.3.1 负载报告上传
10.3.2 为bundle选择Broker节点
10.4 bundle管理
10.4.1 选举leader节点
10.4.2 bundle卸载机制
10.4.3 bundle切分机制
10.5 本章总结
*11章 Pulsar的生产者与消息发布
11.1 生产者发送消息
11.1.1 初始化生产者
11.1.2 生产者发送消息流程
11.2 Broker处理消息
11.2.1 写入消息
11.2.2 切换Ledger
11.3 本章总结
*12章 Pulsar的消费者与消息订阅
12.1 消费者订阅消息
12.1.1 消费者的初始化
12.1.2 接收消息
12.1.3 确认超时与取消确认
12.2 Broker读取与推送消息
12.2.1 处理Subscribe请求
12.2.2 推送消息
12.3 ACK机制
12.3.1 ACK机制的设计
12.3.2 ACK机制的实现
12.4 消息清除
12.4.1 历史消息清除
12.4.2 清除backlog消息
12.4.3 清除过期数据
12.5 本章总结
第3部分 分布式数据存储
*13章 Kafka存储机制与读写流程
13.1 数据存储机制的设计
13.2 消息写入流程
13.3 消息读取流程
13.4 日志管理
13.4.1 日志加载
13.4.2 日志刷盘
13.4.3 数据清理
13.4.4 数据去重
13.5 本章总结
*14章 Kafka主从同步
14.1 成为leader/follow副本
14.2 follow副本同步流程
14.2.1 同步流程与数据一致性
14.2.2 LeaderEpoch机制
14.2.3 follow副本拉取消息
14.3 leader副本更新
14.3.1 更新ISR集合
14.3.2 更新高水位
14.4 本章总结
*15章 Kafka分布式协同
15.1 KafkaController选举
15.1.1 KafkaController元数据
15.1.2 ControllerEpoch机制
15.1.3 选举流程
15.2 ZooKeeper监控机制
15.3 故障转移
15.3.1 分区、副本状态机
15.3.2 分区状态切换流程
15.3.3 副本状态切换流程
15.4 实战:Preferred Replica重平衡
15.5 实战:增加分区数量
15.6 实战:Kafka集群扩容
15.7 本章总结
*16章 BookKeeper客户端
16.1 客户端设计
16.2 客户端写入
16.2.1 Ledger创建流程
16.2.2 数据写入流程
16.2.3 处理写入结果
16.2.4 故障转移
16.2.5 LAC上报
16.2.6 限制生产者数量
16.3 客户端读取
16.3.1 消费者读取数据
16.3.2 客户端Recover
16.4 本章总结
*17章 BookKeeper服务端
17.1 Bookie设计
17.2 Bookie写入流程
17.2.1 Bookie初始化
17.2.2 Journal写入流程
17.2.3 Ledger写入流程
17.2.4 Ledger的数据存储格式
17.3 Bookie读取数据
17.4 Bookie数据清除
17.5 Bookie Recovery
17.5.1 Auditor
17.5.2 ReplicationWorker
17.6 本章总结
第4部分 事务与KRaft模块
*18章 Kafka与Pulsar事务概述
18.1 为什么需要事务
18.1.1 幂等发送
18.1.2 事务保证
18.2 Kafka事务应用示例
18.3 Pulsar事务应用示例
18.4 本章总结
*19章 Kafka事务的设计与实现
19.1 Kafka的事务设计
19.2 事务初始化流程
19.2.1 事务定义
19.2.2 生产者初始化事务
19.2.3 生产者启动事务
19.3 事务消息发送与处理流程
19.3.1 事务分区发送与处理流程
19.3.2 生产者发送事务消息
19.3.3 Broker处理事务消息
19.3.4 ACK偏移量发送与处理流程
19.4 事务提交流程
19.4.1 生产者提交事务
19.4.2 协调者完成事务
19.5 本章总结
*20章 KRaft模块概述
20.1 为什么要移除ZooKeeper
20.2 部署与调试KRaft模块
20.3 Raft算法
20.3.1 leader选举
20.3.2 日志复制
20.3.3 安全性
20.4 本章总结
*21章 KRaft模块的设计与实现原理
21.1 KRaft请求处理流程
21.1.1 Raft状态
21.1.2 Raft请求类型
21.1.3 处理Raft请求
21.2 KRaft leader选举机制
21.2.1 初始化Raft状态
21.2.2 发送投票请求
21.2.3 投票流程
21.2.4 当选leader节点
21.3 KRaft生成Record数据
21.4 KRaft数据存储机制
21.5 KRaft数据同步机制
21.6 KRaft提交Record数据
21.6.1 监听器机制
21.6.2 BrokerMetadataListener
21.6.3 QuorumMetaLogListener
21.7 KRaft节点监控与故障转移机制
21.7.1 节点注册
21.7.2 心跳请求
21.7.3 故障转移
21.8 KRaft数据清理机制
21.8.1 快照管理
21.8.2 历史数据清理
21.9 本章总结
第5部分 *级应用
*22章 安全
22.1 TLS加密
22.1.1 准备TLS证书和密钥
22.1.2 Kafka配置
22.1.3 Pulsar配置
22.2 认证与授权
22.2.1 Kafka SCRAM认证与授权
22.2.2 Pulsar JWT认证与授权
22.3 本章总结
*23章 跨地域复制与分层存储
23.1 跨地域复制
23.1.1 MirrorMaker
23.1.2 Pulsar跨地域复制机制
23.2 分层存储
23.3 本章总结
*24章 监控与管理
24.1 Kafka监控与管理平台
24.1.1 Kafka监控
24.1.2 Kafka管理平台
24.2 Pulsar监控与管理平台
24.2.1 Pulsar监控
24.2.2 Pulsar管理平台
24.3 本章总结
*25章 连接器
25.1 Kafka Connect
25.1.1 应用示例
25.1.2 开发实践
25.2 Pulsar IO
25.2.1 应用示例
25.2.2 开发实践
25.3 本章总结
*26章 流计算引擎
26.1 Kafka Stream
26.1.1 应用示例
26.1.2 时间窗口
26.1.3 语义保证和线程模型
26.2 Pulsar Function
26.2.1 应用示例
26.2.2 部署
26.2.3 时间窗口
26.2.4 Function运行模式和消息语义保证
26.3 本章总结
定价:138.0
ISBN:9787121440014
作者:梁国斌
版次:*1版
出版时间:2022-08
内容提要:
本书详细介绍了Kafka与Pulsar的使用方式,并深入分析了它们的实现机制。通过阅读本书,读者可以快速入门使用Kafka与Pulsar,并深入理解它们的实现原理。 本书通过大量实践示例介绍了Kafka与Pulsar的使用方式,包括管理脚本与客户端(生产者、消费者)的使用方式、关键的配置项、ACK提交方式等基础应用,以及安全机制、跨地域复制机制、连接器/流计算引擎、常用监控管理平台等*级应用。这些内容可以帮助读者深入掌握Kafka与Pulsar的使用方式,并完成日常管理工作。另外,本书深入分析了Kafka与Pulsar的实现原理,包括客户端(生产者、消费者)的设计与实现、Broker网络模型、主题(分区)分配与负载均衡机制,以及磁盘存储与性能优化方案、数据同步机制、扩容与故障转移机制。*后,本书介绍了Kafka与Pulsar的事务机制,并深入分析了Kafka事务的实现及Kafka*新的分布式协作组件KRaft模块。这部分内容可以帮助读者轻松理解Kafka与Pulsar的架构设计与实现原理。
作者简介:
后端*级开发,源码爱好者,对Netty、Spring、Redis、Kafka、Pulsar等中间件有深入研究,技术公众号binecy作者。
目录:
*1部分 基础应用
*1章 Kafka与Pulsar概述
1.1 简介
1.2 特性
1.3 概念
1.3.1 Kafka基础概念
1.3.2 Pulsar基础概念
1.4 本章总结
*2章 Kafka的部署与调试
2.1 安装Kafka集群
2.1.1 部署ZooKeeper集群
2.1.2 部署Kafka集群
2.2 调试Kafka
2.3 本章总结
第3章 Kafka的应用
3.1 脚本
3.1.1 主题管理
3.1.2 生产者与消费者
3.1.3 动态配置
3.2 客户端
3.2.1 生产者
3.2.2 消费者
3.3 消息序列化
3.4 配额
3.5 本章总结
第4章 Pulsar的部署与调试
4.1 本地部署
4.2 集群部署
4.2.1 ZooKeeper集群部署
4.2.2 初始化集群元数据
4.2.3 部署BookKeeper集群
4.2.4 部署Pulsar Broker
4.3 调试Pulsar
4.3.1 调试Pulsar Broker源码
4.3.2 调试BookKeeper
4.4 本章总结
第5章 Pulsar的应用
5.1 租户
5.2 命名空间
5.2.1 消息保留和过期
5.2.2 持久化策略
5.2.3 消息投递速率
5.3 主题
5.3.1 创建主题
5.3.2 发送、消费消息
5.3.3 管理主题
5.4 客户端
5.4.1 生产者
5.4.2 消费者
5.5 Schema
5.5.1 Schema的类型与使用示例
5.5.2 Schema演化与兼容
5.5.3 管理Schema
5.6 资源隔离
5.6.1 Broker隔离
5.6.2 Bookie隔离
5.7 兼容Kafka客户端
5.8 BookKeeper使用示例
5.9 本章总结
*2部分 客户端与Broker计算层
第6章 Kafka和Pulsar的架构
6.1 ZooKeeper的作用
6.2 Kafka的架构设计
6.2.1 元数据管理
6.2.2 发布/订阅模式
6.2.3 磁盘存储的设计与优化
6.2.4 数据副本
6.2.5 系统伸缩
6.2.6 故障转移
6.3 Pulsar的架构设计
6.3.1 Pulsar的计算层
6.3.2 Pulsar的存储层
6.3.3 系统伸缩
6.3.4 故障转移
6.4 源码架构
6.4.1 Kafka
6.4.2 Pulsar
6.4.3 BookKeeper
6.5 本章总结
第7章 Kafka的主题
7.1 CreateTopics请求的处理流程
7.1.1 创建主题
7.1.2 分区副本分配规则
7.1.3 存储主题元数据
7.2 KafkaController处理新主题
7.3 本章总结
第8章 Kafka的生产者与消息发布
8.1 生产者发送消息
8.1.1 消息发送流程
8.1.2 消息累积器与消息批次
8.1.3 Sender线程
8.1.4 TCP通信协议
8.1.5 元数据刷新机制
8.2 Broker接收消息
8.2.1 Broker处理消息流程
8.2.2 延迟操作与时间轮
8.3 本章总结
第9章 Kafka的消费者与消息订阅
9.1 消费组协作机制
9.1.1 分区分配器
9.1.2 重平衡的设计
9.1.3 实战:使用CooperativeStickyAssignor分区分配器
9.1.4 重平衡的实现
9.2 心跳与元数据更新
9.3 ACK管理
9.3.1 消费者初始化偏移量
9.3.2 ACK偏移量的提交与存储
9.4 读取消息
9.4.1 消费者发送Fetch请求
9.4.2 Broker处理Fetch请求
9.5 本章总结
*10章 Pulsar的主题
10.1 租户与命名空间
10.2 主题
10.2.1 创建主题
10.2.2 初始化主题
10.2.3 绑定主题
10.3 Broker负载均衡
10.3.1 负载报告上传
10.3.2 为bundle选择Broker节点
10.4 bundle管理
10.4.1 选举leader节点
10.4.2 bundle卸载机制
10.4.3 bundle切分机制
10.5 本章总结
*11章 Pulsar的生产者与消息发布
11.1 生产者发送消息
11.1.1 初始化生产者
11.1.2 生产者发送消息流程
11.2 Broker处理消息
11.2.1 写入消息
11.2.2 切换Ledger
11.3 本章总结
*12章 Pulsar的消费者与消息订阅
12.1 消费者订阅消息
12.1.1 消费者的初始化
12.1.2 接收消息
12.1.3 确认超时与取消确认
12.2 Broker读取与推送消息
12.2.1 处理Subscribe请求
12.2.2 推送消息
12.3 ACK机制
12.3.1 ACK机制的设计
12.3.2 ACK机制的实现
12.4 消息清除
12.4.1 历史消息清除
12.4.2 清除backlog消息
12.4.3 清除过期数据
12.5 本章总结
第3部分 分布式数据存储
*13章 Kafka存储机制与读写流程
13.1 数据存储机制的设计
13.2 消息写入流程
13.3 消息读取流程
13.4 日志管理
13.4.1 日志加载
13.4.2 日志刷盘
13.4.3 数据清理
13.4.4 数据去重
13.5 本章总结
*14章 Kafka主从同步
14.1 成为leader/follow副本
14.2 follow副本同步流程
14.2.1 同步流程与数据一致性
14.2.2 LeaderEpoch机制
14.2.3 follow副本拉取消息
14.3 leader副本更新
14.3.1 更新ISR集合
14.3.2 更新高水位
14.4 本章总结
*15章 Kafka分布式协同
15.1 KafkaController选举
15.1.1 KafkaController元数据
15.1.2 ControllerEpoch机制
15.1.3 选举流程
15.2 ZooKeeper监控机制
15.3 故障转移
15.3.1 分区、副本状态机
15.3.2 分区状态切换流程
15.3.3 副本状态切换流程
15.4 实战:Preferred Replica重平衡
15.5 实战:增加分区数量
15.6 实战:Kafka集群扩容
15.7 本章总结
*16章 BookKeeper客户端
16.1 客户端设计
16.2 客户端写入
16.2.1 Ledger创建流程
16.2.2 数据写入流程
16.2.3 处理写入结果
16.2.4 故障转移
16.2.5 LAC上报
16.2.6 限制生产者数量
16.3 客户端读取
16.3.1 消费者读取数据
16.3.2 客户端Recover
16.4 本章总结
*17章 BookKeeper服务端
17.1 Bookie设计
17.2 Bookie写入流程
17.2.1 Bookie初始化
17.2.2 Journal写入流程
17.2.3 Ledger写入流程
17.2.4 Ledger的数据存储格式
17.3 Bookie读取数据
17.4 Bookie数据清除
17.5 Bookie Recovery
17.5.1 Auditor
17.5.2 ReplicationWorker
17.6 本章总结
第4部分 事务与KRaft模块
*18章 Kafka与Pulsar事务概述
18.1 为什么需要事务
18.1.1 幂等发送
18.1.2 事务保证
18.2 Kafka事务应用示例
18.3 Pulsar事务应用示例
18.4 本章总结
*19章 Kafka事务的设计与实现
19.1 Kafka的事务设计
19.2 事务初始化流程
19.2.1 事务定义
19.2.2 生产者初始化事务
19.2.3 生产者启动事务
19.3 事务消息发送与处理流程
19.3.1 事务分区发送与处理流程
19.3.2 生产者发送事务消息
19.3.3 Broker处理事务消息
19.3.4 ACK偏移量发送与处理流程
19.4 事务提交流程
19.4.1 生产者提交事务
19.4.2 协调者完成事务
19.5 本章总结
*20章 KRaft模块概述
20.1 为什么要移除ZooKeeper
20.2 部署与调试KRaft模块
20.3 Raft算法
20.3.1 leader选举
20.3.2 日志复制
20.3.3 安全性
20.4 本章总结
*21章 KRaft模块的设计与实现原理
21.1 KRaft请求处理流程
21.1.1 Raft状态
21.1.2 Raft请求类型
21.1.3 处理Raft请求
21.2 KRaft leader选举机制
21.2.1 初始化Raft状态
21.2.2 发送投票请求
21.2.3 投票流程
21.2.4 当选leader节点
21.3 KRaft生成Record数据
21.4 KRaft数据存储机制
21.5 KRaft数据同步机制
21.6 KRaft提交Record数据
21.6.1 监听器机制
21.6.2 BrokerMetadataListener
21.6.3 QuorumMetaLogListener
21.7 KRaft节点监控与故障转移机制
21.7.1 节点注册
21.7.2 心跳请求
21.7.3 故障转移
21.8 KRaft数据清理机制
21.8.1 快照管理
21.8.2 历史数据清理
21.9 本章总结
第5部分 *级应用
*22章 安全
22.1 TLS加密
22.1.1 准备TLS证书和密钥
22.1.2 Kafka配置
22.1.3 Pulsar配置
22.2 认证与授权
22.2.1 Kafka SCRAM认证与授权
22.2.2 Pulsar JWT认证与授权
22.3 本章总结
*23章 跨地域复制与分层存储
23.1 跨地域复制
23.1.1 MirrorMaker
23.1.2 Pulsar跨地域复制机制
23.2 分层存储
23.3 本章总结
*24章 监控与管理
24.1 Kafka监控与管理平台
24.1.1 Kafka监控
24.1.2 Kafka管理平台
24.2 Pulsar监控与管理平台
24.2.1 Pulsar监控
24.2.2 Pulsar管理平台
24.3 本章总结
*25章 连接器
25.1 Kafka Connect
25.1.1 应用示例
25.1.2 开发实践
25.2 Pulsar IO
25.2.1 应用示例
25.2.2 开发实践
25.3 本章总结
*26章 流计算引擎
26.1 Kafka Stream
26.1.1 应用示例
26.1.2 时间窗口
26.1.3 语义保证和线程模型
26.2 Pulsar Function
26.2.1 应用示例
26.2.2 部署
26.2.3 时间窗口
26.2.4 Function运行模式和消息语义保证
26.3 本章总结
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺