暂无商品咨询信息 [发表商品咨询]
本书的主要内容有:学习Kafka基础知识和发布/订阅通信模式。使用Kafka Streams和ksqlDB构建无状态和有状态的流处理应用程序。执行高级有状态操作,包括窗口化、关联和聚合。深入理解有状态处理的底层工作原理。了解由Kafka Connect支持的ksqlDB数据集成功能。使用ksqlDB中的不同类型的集合,并执行推送查询和拉取查询。将你的Kafka Streams和ksqlDB应用部署到生产环境。
Mitch Seymour是Mailchimp的一名高级工程师和技术主管。他使用Kafka Streams和ksqlDB构建的流处理应用程序,每天能以亚秒级的延迟处理数十亿个事件。他曾在公司技术讲座、本地交流会和国际会议上分享这些技术,并为ksqlDB的代码库和各种在线出版物做出过贡献。
目录
序 1
前言 3
第一部分 Kafka
第1 章 初识Kafka 13
1.1 通信模型14
1.2 流是如何存储的 18
1.3 主题与分区 21
1.4 事件 .23
1.5 Kafka 集群和代理服务器 .24
1.6 消费组 26
1.7 安装Kafka 28
1.8 你好,Kafka 30
1.9 总结 .33
第二部分 Kafka Streams
第2 章 初识Kafka Streams .37
2.1 Kafka 生态 37
2.1.1 Kafka Streams 之前 38
2.1.2 初识Kafka Streams 40
2.2 特性一览41
2.3 运维特性42
2.3.1 伸缩性 42
2.3.2 可靠性 43
2.3.3 可维护性 .44
2.4 与其他系统的对比 44
2.4.1 部署模型 .45
2.4.2 处理模型 .45
2.4.3 Kappa 架构 .46
2.5 应用场景48
2.6 处理器拓扑 49
2.6.1 子拓扑 52
2.6.2 深度优先处理 53
2.6.3 数据流编程的优点 .54
2.6.4 任务和流线程 56
2.7 高层级DSL 与低层级处理器API 59
2.8 教程介绍:Hello, Streams 60
2.8.1 项目搭建 .60
2.8.2 创建新项目 61
2.8.3 添加Kafka Streams 依赖 .62
2.8.4 DSL 63
2.8.5 处理器API .66
2.9 流和表 68
2.9.1 流/ 表的二元性 72
2.9.2 KStream, KTable, GlobalKTable 73
2.10 总结 74
第3 章 无状态处理 75
3.1 无状态处理与有状态处理 76
3.2 教程介绍:处理一个推特流 77
3.3 项目初始化 78
3.4 添加一个KStream 源处理器 79
3.5 序列化/ 反序列化 83
3.5.1 构建自定义Serdes .85
3.5.2 定义数据类 86
3.5.3 实现自定义反序列化器 87
3.5.4 实现自定义序列化器.88
3.5.5 构建Tweet Serdes 88
3.6 过滤数据90
3.7 分支数据92
3.8 翻译推文94
3.9 合并流 96
3.10 补全推文信息 97
3.10.1 Avro 数据类 .98
3.10.2 情绪分析 100
3.11 序列化Avro 数据 .103
3.11.1 无注册表Avro Serdes 104
3.11.2 Schema Registry– 感知型Avro Serdes 104
3.12 添加接收器处理器 106
3.13 运行代码 107
3.14 实证验证 107
3.15 总结 110
第4 章 Kafka 有状态处理 .111
4.1 有状态处理的优点 . 112
4.2 有状态操作符预览 . 113
4.3 状态存储. 114
4.3.1 共同特性 115
4.3.2 持久化存储与内存存储 . 117
4.4 教程介绍:电子游戏排行榜 . 118
4.5 项目搭建.120
4.6 数据模型.120
4.7 添加源处理器 122
4.7.1 KStream 123
4.7.2 KTable 123
4.7.3 GlobalKTable .125
4.8 注册流和表 126
4.9 关联 127
4.9.1 关联操作符 .128
4.9.2 关联类型 129
4.9.3 协同分区 130
4.9.4 值关联器 133
4.9.5 KStream 关联KTable(关联players) .135
4.9.6 KStream 关联GlobalKTable(关联products).137
4.10 记录分组 138
4.10.1 流分组 .138
4.10.2 表分组 .139
4.11 聚合 140
4.11.1 聚合流 .140
4.11.2 聚合表 .143
4.12 整合所有步骤 144
4.13 交互式查询 .147
4.13.1 物化存储 147
4.13.2 访问只读状态存储 148
4.13.3 查询非窗口化的键值存储 .149
4.13.4 本地查询 152
4.13.5 远程查询 152
4.14 总结 161
第5 章 窗口与时间 163
5.1 教程介绍:患者监测应用程序 164
5.2 项目设置.166
5.3 数据模型.167
5.4 时间语义.167
5.5 时间戳提取器 170
5.5.1 包含的时间戳提取器170
5.5.2 自定义时间戳提取器172
5.5.3 注册带有时间戳提取器的流 173
5.6 窗口化流.174
5.6.1 窗口类型 175
5.6.2 选择一个窗口 .179
5.6.3 窗口聚合 180
5.7 发出窗口结果 182
5.7.1 宽限期 184
5.7.2 抑制(Suppression) .185
5.8 窗口化KTables 过滤和重新更改键 187
5.9 窗口化关联 188
5.10 时间驱动的Dataflow .189
5.10.1 接收器告警191
5.10.2 查询窗口化键值存储 192
5.11 总结 194
第6 章 高级状态管理 197
6.1 持久化态存储的磁盘布局 .198
6.2 容错性 .200
6.2.1 更改日志主题 .200
6.2.2 备用副本 202
6.3 再均衡:状态(存储)的敌人 203
6.4 防止状态迁移 204
6.4.1 黏性分配 204
6.4.2 静态成员机制 .207
6.5 降低再均衡的影响 .208
6.5.1 增量协作再均衡 209
6.5.2 控制状态大小 .210
6.6 利用记录缓存进行去重写入 .217
6.7 状态存储监控 219
6.7.1 添加状态监听器 219
6.7.2 添加状态恢复监听器220
6.8 内置指标.222
6.9 交互式查询 222
6.10 自定义状态存储 224
6.11 总结 224
第7 章 处理器API . 227
7.1 何时使用处理器API 228
7.2 教程介绍:IoT 数字孪生服务 .229
7.3 项目设置.232
7.4 数据模型.233
7.5 添加源处理器 235
7.6 添加无状态流处理器 237
7.7 创建无状态处理器 .238
7.8 创建有状态处理器 .241
7.9 使用Punctuate 的周期性函数 245
7.10 访问记录元数据 248
7.11 添加接收器处理器 249
7.12 交互式查询 .250
7.13 整合所有组件 251
7.14 结合处理器API 与DSL 255
7.15 处理器和转换器 256
7.16 整合所有组件:重构 .260
7.17 总结 262
第三部分 ksqlDB
第8 章 ksqlDB 入门 265
8.1 ksqlDB 是什么 .266
8.2 何时使用ksqlDB 267
8.3 新型数据库的演进之路 269
8.3.1 Kafka Streams 集成 .269
8.3.2 Connect 集成 272
8.3.3 ksqlDB 与传统SQL 数据库的比较 .274
8.3.4 相似之处 274
8.3.5 不同之处 276
8.4 架构 278
8.4.1 ksqlDB 服务器 278
8.4.2 ksqlDB 客户端 280
8.5 部署模式.282
8.5.1 交互模式 282
8.5.2 无头模式 283
8.6 教程 284
8.6.1 安装ksqlDB 284
8.6.2 运行ksqlDB 服务器 285
8.6.3 预处理主题 .286
8.6.4 使用ksqlDB CLI 286
8.7 总结 289
第9 章 ksqlDB 的数据集成 291
9.1 Kafka Connect 概述 292
9.2 外部模式与嵌入模式的Connect 294
9.2.1 外部模式 294
9.2.2 嵌入模式 295
9.3 配置Connect 工作节点 296
9.4 教程 300
9.5 安装连接器 300
9.5.1 使用ksqlDB 创建连接器 .302
9.5.2 展示连接器 .304
9.5.3 描述连接器 .305
9.5.4 删除连接器 .306
9.6 验证源连接器 306
9.7 与Kafka Connect 集群直接交互 307
9.8 内省托管Schema 308
9.9 总结 308
第10 章 ksqlDB 基础流处理 309
10.1 教程:监控Netflix 的变更 .310
10.2 项目配置 312
10.3 源主题 313
10.4 数据类型 314
10.5 集合 317
10.5.1 创建源集合318
10.5.2 WITH 子句 320
10.6 处理流和表 .321
10.6.1 展示流和表321
10.6.2 描述流和表323
10.6.3 修改流和表323
10.6.4 删除流和表324
10.7 基础查询 325
10.7.1 插入值 .325
10.7.2 简单的选择查询(瞬时推送查询) .327
10.7.3 投影 328
10.7.4 过滤 329
10.7.5 扁平化/ 解嵌套复杂结构 331
10.8 条件表达式 .332
10.8.1 COALESCE 表达式 333
10.8.2 IFNULL 表达式 333
10.8.3 CASE 表达式 333
10.9 将结果写回Kafka(持久化查询).334
10.10 整合所有组件 .339
10.11 总结 .340
第11 章 使用ksqlDB 进行中级和高级流处理 . 341
11.1 项目设置 342
11.2 从SQL 文件启动环境 342
11.3 数据丰富化 .344
11.3.1 关联 344
11.3.2 窗口化关联 350
11.4 聚合 353
11.4.1 聚合基础 353
11.4.2 窗口化聚合 356
11.5 物化视图 362
11.6 客户端 364
11.7 拉取查询 364
11.8 推送查询 368
11.9 函数和运算符 369
11.9.1 运算符 .369
11.9.2 显示函数 370
11.9.3 描述函数 371
11.9.4 创建自定义函数 .372
11.9.5 自定义ksqlDB 函数的其他资源.379
11.10 总结 .379
第四部分 通往产品之路
第12 章 测试、监控和部署 383
12.1 测试 384
12.1.1 测试ksqlDB 的查询 .384
12.1.2 测试Kafka Streams 387
12.1.3 行为测试 394
12.1.4 基准测试 398
12.1.5 Kafka 集群基准测试 .400
12.1.6 测试的最终思考 .402
12.2 监控 403
12.2.1 监控检查清单 403
12.2.2 提取JMX 指标 404
12.3 部署 407
12.3.1 ksqlDB 容器 .407
12.3.2 Kafka Streams 容器 409
12.3.3 容器编排 410
12.4 操作 411
12.4.1 重置Kafka Streams 应用程序 . 411
12.4.2 限制应用程序输出速率 413
12.4.3 升级Kafka Streams 415
12.5 升级ksqlDB 415
12.6 总结 416
附录A Kafka Streams 配置 417
附录B ksqlDB 配置 423
| 基本信息 | |
|---|---|
| 出版社 | 中国电力出版社 |
| ISBN | 9787523911976 |
| 条码 | 9787523911976 |
| 编者 | [美]米奇·西摩(Mitch Seymour) 著 字立生 王乔阳 李佳兴 译 著 |
| 译者 | 字立生,王乔阳,李佳兴 |
| 出版年月 | 2026-05-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 444 |
| 字数 | 434000 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]