标签
内容简介
Kafka Streams 是 Apache Kafka 提供的一个用于构建流式处理程序的 Java 库。它和 Storm、Spark Streaming 等流式处理框架不同,它本身只依赖 Kafka,并不需要额外的流式处理集群,因此可以看作轻量级、易用的流式处理 API。本书是 Manning 出版社《Kafka Streams in Action》的中文译本,面向希望用 Kafka Streams 搭建实时数据处理应用的 Java 开发者。全书分为 4 部分,共 9 章。第 1 部分先建立认知基础,先讲大数据与批处理的局限、流式处理的思路,以及如何把一笔购买交易拆解成节点图,并介绍 Kafka 的架构、分区、生产者与消费者、安装运行等入门知识;第 2 部分是开发主体,从 Hello World 示例出发,以虚构零售商的客户数据、购买交易为例,讲解 KStream 的状态操作、状态存储、各类连接(stream-table、table-stream、stream-stream)、时间戳与事件时间、KTable 的更新语义、聚合与开窗,以及低阶处理器 API 与股票分析示例;第 3 部分讲管理与运维,包括消费者滞后、JMX 指标、状态监听器与异常处理等监控调试手段,以及拓扑测试、处理器单元测试和基于嵌入式 Kafka 的集成测试;第 4 部分进入进阶,介绍用 Kafka Connect 接入外部数据源、用交互式查询替代关系型数据库支撑仪表板,以及 KSQL 的流表概念与查询写法。书末另附配置调优与精确一次处理语义两个附录。
编辑推荐
市面上讲 Kafka 的书不少,但真正把「流式处理应用怎么写、怎么测、怎么上线」讲清楚的并不算多,这本《Kafka Streams实战》正好补上了这块空缺。作者 Bejeck 是 Kafka 社区的长期贡献者,书中不只罗列 API,还强调了一些比较通用的概念,比如聚合、时间窗口、事件时间与处理时间的区别、多种连接方式、流与表的关系等;即便日后换用别的流式框架,这些知识依然用得上。全书 235 页,结构清晰:先用一张交易处理节点图帮你建立「心智模型」,再顺着真实的零售场景一步步加特性,而不是止步于 Hello World。更难能可贵的是,它花了整整两章讲监控和测试,而这恰恰是很多入门书跳过的部分。不过也要说明,本书写作时间较早,示例基于当时的 Kafka Streams DSL,KSQL 的语法名称后来已改为 ksqlDB,跟着敲代码时需要对版本差异做些适配。
适合谁读
适合
- 掌握 Java 基础、准备在项目中使用 Kafka 进行实时数据处理的开发者
- 做实时风控、订单处理、指标统计等流式计算的后端工程师
- 已会使用 Kafka 收发消息,想进一步掌握 Streams DSL 与处理器 API 的数据工程师
- 需要为流式应用编写单元测试和集成测试的测试与开发人员
不适合
- 完全没有编程基础、也从未接触过消息队列的读者
- 只想了解 Kafka 集群部署和运维调优的系统管理员
- 需要查询最新版本特性与 API 变化的读者,需另配官方文档
阅读建议
- 第 2 章是 Kafka 基础速览,熟悉 Kafka 的读者可快速翻阅,把精力放在第 3 章之后的示例上。
- 务必一边阅读一边动手敲代码,先跑通 Hello World,再按书中零售商场景逐步添加功能。
- 读到第 4、5 章时画一张 KStream 与 KTable 的数据流草图,有助于理解表流二元性和连接语义。
- 阅读时对照当前版本的 Kafka 官方文档,注意 KSQL 已演进为 ksqlDB,API 细节以官方为准。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第一部分 开启Kafka Streams之旅
- 第1章 欢迎来到Kafka Streams
- 第2章 Kafka快速指南
- 第二部分 Kafka Streams开发篇
- 第3章 开发Kafka Streams
- 第4章 流和状态
- 第5章 KTable API
- 第6章 处理器API
- 第三部分 管理Kafka Streams
- 第7章 监控和性能
- 第8章 测试Kafka Streams应用程序
- 第四部分 Kafka Streams进阶
- 第9章 Kafka Streams的高级应用
- 附录A 额外的配置信息
- 附录B 精确一次处理语义
常见问题
这本书适合零基础学 Kafka 吗?
不完全适合。书中第 2 章只是对 Kafka 核心概念做了快速梳理,重点在于 Kafka Streams 的使用,且示例都基于 Java。零基础读者最好先补一补 Java 和 Kafka 的基本用法,再读本书会顺畅得多。
书名里的 Streams 是 Kafka 自带的组件吗?
是的。Kafka Streams 是 Apache Kafka 官方提供的一个构建流式处理的 Java 库,它依赖 Kafka 作为数据源与状态存储,不需要像 Storm、Spark 那样另起一套计算集群,因此部署和运维相对轻量。
书中讲的 KSQL 现在还能用吗?
KSQL 后来已演进为 Confluent 的 ksqlDB,名称和部分语法有调整。本书第 9 章介绍的流表概念、交互式查询思路仍然适用,但具体命令建议按当前 ksqlDB 官方文档执行。
读完能学到什么程度的实战能力?
能独立写出基于 DSL 和处理器 API 的流式拓扑,实现有状态操作、连接与窗口聚合,并对应用做监控、单元测试和集成测试,还能用 Kafka Connect 和交互式查询把流应用接入现有系统。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。