Kafka Streams实战 封面

Kafka Streams实战

评分 3.4
字数
21.6万字
章节数
15
ISBN
9787115507396

标签

内容简介

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 变化的读者,需另配官方文档

阅读建议

  1. 第 2 章是 Kafka 基础速览,熟悉 Kafka 的读者可快速翻阅,把精力放在第 3 章之后的示例上。
  2. 务必一边阅读一边动手敲代码,先跑通 Hello World,再按书中零售商场景逐步添加功能。
  3. 读到第 4、5 章时画一张 KStream 与 KTable 的数据流草图,有助于理解表流二元性和连接语义。
  4. 阅读时对照当前版本的 Kafka 官方文档,注意 KSQL 已演进为 ksqlDB,API 细节以官方为准。

出版社简介

人民邮电出版社 中国 · 成立于 1953 年

人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。

目录

  1. 第一部分 开启Kafka Streams之旅
  2. 第1章 欢迎来到Kafka Streams
  3. 第2章 Kafka快速指南
  4. 第二部分 Kafka Streams开发篇
  5. 第3章 开发Kafka Streams
  6. 第4章 流和状态
  7. 第5章 KTable API
  8. 第6章 处理器API
  9. 第三部分 管理Kafka Streams
  10. 第7章 监控和性能
  11. 第8章 测试Kafka Streams应用程序
  12. 第四部分 Kafka Streams进阶
  13. 第9章 Kafka Streams的高级应用
  14. 附录A 额外的配置信息
  15. 附录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 和交互式查询把流应用接入现有系统。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同类高分