Kafka权威指南(第2版)
上QQ阅读APP看书,第一时间看更新

第2版序

本书第 1 版(英文版)出版于 5 年前(2017 年)。当时,估计有超过 30% 的《财富》世界 500 强公司使用了Kafka。现在,超过 70% 的《财富》世界 500 强公司正在使用Kafka。Kafka 仍然是世界上最流行的开源项目,在软件生态系统中备受瞩目。

Kafka 为什么这么流行?我认为主要是因为我们的数据基础设施之间存在巨大差异。传统的数据管理侧重的都是如何存储数据——文件存储或数据库保证了数据安全性,我们可按需查找到想要的数据。人们在这些系统上已经投入大量的精力和金钱。但是,现代化公司不只是拥有一个带有单个数据库的软件系统那么简单,它们的系统可以复杂到令人难以置信的程度,可以由数百甚至数千个自研应用程序、微服务、数据库、SaaS 和分析平台组成。我们所面临的问题逐渐变成了如何将这些“碎片”连接起来,实现实时的协同工作。

这个问题不是关于如何管理静态数据,而是关于如何管理动态数据。Kafka 就是这一运动浪潮的核心,它已经成为所有动态数据平台事实上的基础。

在这段旅程中,Kafka 并没有停滞不前。从最初只是简单地提交日志,到后来加入了连接器和流式处理能力,Kafka 一直在改进架构。为了提升Kafka 的可用性和稳定性,Kafka 社区不仅在不断地改进已有的 API、配置参数、指标和工具,还加入了新的编程式管理 API、下一代全局复制和数据冗余解决方案 MirrorMaker 2.0、一个新的基于 Raft 的共识协议(通过单个可执行文件就可以运行Kafka)和分层存储弹性。更重要的是,Kafka 加入了高级安全特性——身份验证、授权和加密,这让企业在关键应用场景中使用Kafka 变得更加简单。

我们发现,随着Kafka 的演进,它的应用场景也在发生变化。在本书第 1 版出版时,大部分Kafka 系统被部署在传统的本地数据中心,使用的是传统的部署脚本。最常见的应用场景是 ETL 和消息传递,那时流式处理才刚刚起步。5 年之后,大部分Kafka 系统运行在云端,其中有很多被部署在 Kubernetes 集群里。ETL 和消息传递仍然是常见的应用场景,不同的是,现在加入了基于事件驱动的微服务、实时流式处理、物联网、机器学习管道以及数以百计的行业特定应用场景和模式,比如保险公司理赔处理、银行交易系统、实时视频游戏和流媒体服务个性化定制。

虽然Kafka 被部署到了新的环境中,也有了更多的应用场景,但要使用和部署好Kafka,仍然需要遵循Kafka 独有的思想。本书涵盖了Kafka 应用程序开发人员和站点可靠性工程师需要知道的一切——从最基本的 API 和配置到最新的高级特性。它不仅告诉我们使用Kafka 能做什么以及如何使用,还告诉我们不能使用Kafka 做什么以及要避免哪些反模式。不管是新用户还是有经验的老手,这本书都是一部可信赖的指南。

——Jay Kreps,Kafka 核心作者、Confluent 联合创始人兼 CEO