| 作者: | Dylan Scott |
| 语言: | 英文 |
| 出版年份: | 2022 |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《Kafka in Action》是一本由Manning出版社出版的Apache Kafka实战指南,专为希望掌握现代事件流平台和实时数据处理的开发者和架构师设计。本书由三位经验丰富的作者合著:Dylan Scott、Viktor Gamov和Dave Klein,他们都是Kafka和流处理领域的专家。本书由Kafka联合创始人Jun Rao作序推荐。Apache Kafka是目前最流行的分布式流处理平台之一,以其高吞吐量、可扩展性和持久性而闻名。本书不仅教授Kafka的具体使用,更重要的是深入探讨事件流架构的设计理念和实际应用场景,帮助读者从零开始构建完整的Kafka解决方案。
第一部分建立了Kafka的基础知识体系。第1章全面介绍了Kafka的概念和价值主张。作者首先回答了"什么是Kafka?"这个基本问题,然后从开发者和管理者两个角度解释了Kafka的用途。本章特别有价值的是澄清了关于Kafka的常见误解:Kafka不仅适用于Hadoop生态系统,也不仅仅是另一个消息代理。作者通过早期和后来的实际案例展示了Kafka在现实世界中的应用,并讨论了何时Kafka可能不是合适的选择。
第2章带领读者深入了解Kafka的核心概念。从生产和消费第一条消息开始,本章介绍了代理(Brokers)的概念、Kafka的整体架构、ZooKeeper的作用、提交日志(Commit Log)模型等核心概念。本章还详细介绍了Kafka的各种源代码包及其功能:Kafka Streams(流处理)、Kafka Connect(数据连接)、AdminClient(管理客户端)、ksqlDB(事件流数据库)等。最后,本章解释了流处理的基本概念和"恰好一次"(exactly-once)语义的含义。
第二部分专注于Kafka的实际应用和核心组件。第3章讲解如何设计Kafka项目。本章从一个实际案例开始:接管现有的数据架构并引入Kafka作为解决方案。通过发票数据处理的具体场景,作者展示了如何分析现有问题、为什么Kafka适合解决这些问题、如何设计数据需求、制定高级计划并审查蓝图。本章还讨论了数据格式规划和依赖设置等实际考虑。
第4章深入生产者(Producers):数据来源。通过具体示例,本章介绍了生产者的基本概念、配置选项(如代理列表配置)、性能与安全性的权衡、时间戳处理等。作者特别强调了如何根据需求生成代码,以及客户端和代理版本兼容性的重要性。
第5章专注于消费者(Consumers):数据解锁。本章通过示例展示了消费者的工作方式、配置选项、坐标理解等概念。详细介绍了消费者如何交互、跟踪机制、组协调器(Group Coordinator)、分区分配策略、偏移量管理(Marking our place)以及如何从压缩主题(Compacted Topic)读取数据。
第6章讲解代理(Brokers),这是Kafka集群的核心组件。本章介绍了代理的基本概念、ZooKeeper的作用、代理级配置选项、应用程序日志、服务器日志、状态管理等。特别重要的是分区副本领导者(Partition Replica Leaders)的概念及其在数据持久性中的作用。本章还深入探讨了集群维护、添加代理、升级集群、升级客户端、备份等运维主题。
第7章专注于主题和分区(Topics and Partitions)。本章详细介绍了主题的创建选项、复制因子(Replication Factors)、分区位置、日志查看等概念。特别有价值的是使用EmbeddedKafkaCluster和Kafka Testcontainers进行测试的部分,以及主题压缩(Topic Compaction)的深入讲解。
第8章讨论Kafka存储策略。本章探讨了数据存储时长、数据移动策略、保持原始事件的重要性、从批处理思维模式转变等关键主题。介绍了各种工具,如Apache Flume、Red Hat Debezium、Secor等,以及如何在架构中使用Kafka,包括Lambda架构和Kappa架构的对比。
第9章专注于管理和监控。本章介绍了各种管理工具,包括使用AdminClient进行代码管理、kcat(原kafkacat)、Confluent REST Proxy API等。还讨论了将Kafka作为systemd服务运行、日志记录(Kafka应用日志和ZooKeeper日志)、防火墙配置、广告监听器(Advertised Listeners)、指标监控(JMX控制台)、追踪选项以及通用监控工具。
第三部分涵盖Kafka的高级主题和扩展功能。第10章讲解如何保护Kafka。本章从安全基础开始,包括SSL加密(代理与客户端之间、代理之间)、Kerberos和SASL认证、授权机制(访问控制列表ACLs和基于角色的访问控制RBAC)、ZooKeeper安全设置(Kerberos配置)、配额管理(网络带宽配额和请求率配额)以及静态数据保护。
第11章介绍模式注册表(Schema Registry)。本章提出了一个Kafka成熟度模型,从Level 0到Level 3逐步演进。详细介绍了Confluent Schema Registry的安装、配置、功能(REST API和客户端库)、兼容性规则以及模式修改验证。还讨论了模式注册表的替代方案。
第12章深入流处理:Kafka Streams和ksqlDB。本章全面介绍了Kafka Streams,包括KStreams API DSL、KTable API、GlobalKTable API、Processor API以及Kafka Streams设置。接着介绍了ksqlDB作为事件流数据库的概念,包括查询语言、流处理功能等。
本书采用"学以致用"的教学理念,从第2章开始就带领读者动手操作Kafka。每个概念都通过具体示例进行讲解,读者可以跟随书中的步骤逐步构建完整的Kafka环境。特别是第3章的项目设计方法,帮助读者从实际问题出发,逐步设计解决方案。
本书涵盖了Kafka的所有核心功能和组件:生产者、消费者、代理、主题、分区、存储、管理、安全、模式注册表、流处理等。这种全面的覆盖帮助读者建立完整的Kafka知识体系,从基础概念到高级功能都有详细讲解。
本书不仅关注功能实现,还深入讨论了生产环境的考虑,包括集群维护、升级策略、备份恢复、安全配置、监控告警等主题。这些内容对于将Kafka应用于实际生产环境至关重要。
第3章的项目设计方法和第8章的架构讨论特别有价值。作者不仅教授"如何做",更重要的是解释"为什么"和"何时"使用特定模式。通过对比Lambda架构和Kappa架构,帮助读者理解不同架构模式的适用场景。
本书详细介绍了Kafka生态系统中的各种工具,包括Kafka Connect、Kafka Streams、ksqlDB、Schema Registry等。还讨论了与第三方工具的集成,如Apache Flume、Debezium、Secor等,帮助读者构建完整的数据流水线。
《Kafka in Action》是一本全面、深入、实用的Apache Kafka指南。它不仅教授具体的技术实现,更重要的是帮助读者理解事件流架构的设计理念和实际应用场景。无论你是希望构建实时数据管道、实现事件驱动架构,还是需要解决大规模数据流处理挑战,这本书都能提供宝贵的指导。通过本书的学习,读者将能够掌握Kafka的核心功能,理解事件流平台的价值主张,并能够设计、部署和维护生产级的Kafka环境。在实时数据处理越来越重要的今天,掌握Kafka技术将成为数据工程师和架构师的重要竞争优势。