Kafka权威指南(第2版) (格温·沙皮拉 托德·帕利诺 拉吉尼·西瓦拉姆 克里特·佩蒂) (Z-Library)

Author: 格温·沙皮拉 托德·帕利诺 拉吉尼·西瓦拉姆 克里特·佩蒂

技术

No Description

📄 File Format: PDF
💾 File Size: 7.8 MB
68
Views
0
Downloads
0.00
Total Donations

📄 Text Preview (First 20 pages)

ℹ️

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

📄 Page 1
(This page has no text content)
📄 Page 2
版权信息 书名:Kafka权威指南(第2版) 作者:[美] 格温 • 沙皮拉 托德 • 帕利诺 克里特 • 佩蒂 [英] 拉吉尼 • 西瓦拉姆 译者:薛命灯 ISBN:978-7-115-60142-1 本书由北京图灵文化发展有限公司发行数字版。版权所有,侵权必究。 您购买的图灵电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。 我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。 如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责 任。 091507240605ToBeReplacedWithUserId
📄 Page 3
版权声明 O'Reilly Media, Inc.介绍 业界评论 本书赞誉 第 2 版序 第 1 版序 前言 读者对象 排版约定 使用代码示例 O'Reilly 在线学习平台(O'Reilly Online Learning) 联系我们 致谢 更多信息 第 1 章 初识 Kafka 1.1 发布与订阅消息系统 1.1.1 如何开始 1.1.2 独立的队列系统 1.2 Kafka 登场 1.2.1 消息和批次 1.2.2 模式 1.2.3 主题和分区 1.2.4 生产者和消费者 1.2.5 broker 和集群 1.2.6 多集群 1.3 为什么选择 Kafka 1.3.1 多个生产者 1.3.2 多个消费者 1.3.3 基于磁盘的数据保留 1.3.4 伸缩性 1.3.5 高性能 1.3.6 平台特性 1.4 数据生态系统 应用场景 1.5 起源故事 1.5.1 LinkedIn 的问题 1.5.2 Kafka 的诞生 1.5.3 走向开源 1.5.4 商业化 1.5.5 命名 1.6 开始 Kafka 之旅 第 2 章 安装 Kafka 2.1 环境配置
📄 Page 4
2.1.1 选择操作系统 2.1.2 安装 Java 2.1.3 安装 ZooKeeper 2.2 安装 broker 2.3 配置 broker 2.3.1 常规配置参数 2.3.2 主题的默认配置 2.4 选择硬件 2.4.1 磁盘吞吐量 2.4.2 磁盘容量 2.4.3 内存 2.4.4 网络 2.4.5 CPU 2.5 云端的 Kafka 2.5.1 微软 Azure 2.5.2 AWS 2.6 配置 Kafka 集群 2.6.1 需要多少个 broker 2.6.2 broker 配置 2.6.3 操作系统调优 2.7 生产环境的注意事项 2.7.1 垃圾回收器选项 2.7.2 数据中心布局 2.7.3 共享 ZooKeeper 2.8 小结 第 3 章 Kafka 生产者——向 Kafka 写入数据 3.1 生产者概览 3.2 创建 Kafka 生产者 3.3 发送消息到 Kafka 3.3.1 同步发送消息 3.3.2 异步发送消息 3.4 生产者配置 3.4.1 client.id 3.4.2 acks 3.4.3 消息传递时间 3.4.4 linger.ms 3.4.5 buffer.memory 3.4.6 compression.type 3.4.7 batch.size 3.4.8 max.in.flight.requests.per.connection 3.4.9 max.request.size 3.4.10 receive.buffer.bytes 和 send.buffer.bytes
📄 Page 5
3.4.11 enable.idempotence 3.5 序列化器 3.5.1 自定义序列化器 3.5.2 使用 Avro 序列化数据 3.5.3 在 Kafka 中使用 Avro 记录 3.6 分区 自定义分区策略 3.7 标头 3.8 拦截器 3.9 配额和节流 3.10 小结 第 4 章 Kafka 消费者——从 Kafka 读取数据 4.1 Kafka 消费者相关概念 4.1.1 消费者和消费者群组 4.1.2 消费者群组和分区再均衡 4.1.3 群组固定成员 4.2 创建 Kafka 消费者 4.3 订阅主题 4.4 轮询 线程安全 4.5 配置消费者 4.5.1 fetch.min.bytes 4.5.2 fetch.max.wait.ms 4.5.3 fetch.max.bytes 4.5.4 max.poll.records 4.5.5 max.partition.fetch.bytes 4.5.6 session.timeout.ms 和 heartbeat.interval.ms 4.5.7 max.poll.interval.ms 4.5.8 default.api.timeout.ms 4.5.9 request.timeout.ms 4.5.10 auto.offset.reset 4.5.11 enable.auto.commit 4.5.12 partition.assignment.strategy 4.5.13 client.id 4.5.14 client.rack 4.5.15 group.instance.id 4.5.16 receive.buffer.bytes 和 send.buffer.bytes 4.5.17 offsets.retention.minutes 4.6 提交和偏移量 4.6.1 自动提交 4.6.2 提交当前偏移量 4.6.3 异步提交
📄 Page 6
4.6.4 同步和异步组合提交 4.6.5 提交特定的偏移量 4.7 再均衡监听器 4.8 从特定偏移量位置读取记录 4.9 如何退出 4.10 反序列化器 4.10.1 自定义反序列化器 4.10.2 在消费者里使用 Avro 反序列器 4.11 独立的消费者:为什么以及怎样使用不属于任何群组的消费者 4.12 小结 第 5 章 编程式管理 Kafka 5.1 AdminClient 概览 5.1.1 异步和最终一致性 API 5.1.2 配置参数 5.1.3 扁平的结构 5.1.4 额外的话 5.2 AdminClient 生命周期:创建、配置和关闭 5.2.1 client.dns.lookup 5.2.2 request.timeout.ms 5.3 基本的主题管理操作 5.4 配置管理 5.5 消费者群组管理 5.5.1 查看消费者群组 5.5.2 修改消费者群组 5.6 集群元数据 5.7 高级的管理操作 5.7.1 为主题添加分区 5.7.2 从主题中删除消息 5.7.3 首领选举 5.7.4 重新分配副本 5.8 测试 5.9 小结 第 6 章 深入 Kafka 6.1 集群的成员关系 6.2 控制器 新控制器 KRaft 6.3 复制 6.4 处理请求 6.4.1 生产请求 6.4.2 获取请求 6.4.3 其他请求 6.5 物理存储 6.5.1 分层存储
📄 Page 7
6.5.2 分区的分配 6.5.3 文件管理 6.5.4 文件格式 6.5.5 索引 6.5.6 压实 6.5.7 压实的工作原理 6.5.8 被删除的事件 6.5.9 何时会压实主题 6.6 小结 第 7 章 可靠的数据传递 7.1 可靠性保证 7.2 复制 7.3 broker 配置 7.3.1 复制系数 7.3.2 不彻底的首领选举 7.3.3 最少同步副本 7.3.4 保持副本同步 7.3.5 持久化到磁盘 7.4 在可靠的系统中使用生产者 7.4.1 发送确认 7.4.2 配置生产者的重试参数 7.4.3 额外的错误处理 7.5 在可靠的系统中使用消费者 7.5.1 消费者的可靠性配置 7.5.2 手动提交偏移量 7.6 验证系统可靠性 7.6.1 验证配置 7.6.2 验证应用程序 7.6.3 在生产环境中监控可靠性 7.7 小结 第 8 章 精确一次性语义 8.1 幂等生产者 8.1.1 幂等生产者的工作原理 8.1.2 幂等生产者的局限性 8.1.3 如何使用幂等生产者 8.2 事务 8.2.1 事务的应用场景 8.2.2 事务可以解决哪些问题 8.2.3 事务是如何保证精确一次性的 8.2.4 事务不能解决哪些问题 8.2.5 如何使用事务 8.2.6 事务 ID 和隔离 8.2.7 事务的工作原理
📄 Page 8
8.3 事务的性能 8.4 小结 第 9 章 构建数据管道 9.1 构建数据管道时需要考虑的问题 9.1.1 及时性 9.1.2 可靠性 9.1.3 高吞吐量和动态吞吐量 9.1.4 数据格式 9.1.5 转换 9.1.6 安全性 9.1.7 故障处理 9.1.8 耦合性和灵活性 9.2 何时使用 Connect API 或客户端 API 9.3 KafkaConnect 9.3.1 运行 Connect 9.3.2 连接器示例:文件数据源和文件数据池 9.3.3 连接器示例:从 MySQL 到 ElasticSearch 9.3.4 单一消息转换 9.3.5 深入理解 Connect 9.4 Connect 之外的选择 9.4.1 其他数据存储系统的数据摄入框架 9.4.2 基于图形界面的 ETL 工具 9.4.3 流式处理框架 9.5 小结 第 10 章 跨集群数据镜像 10.1 跨集群镜像的应用场景 10.2 多集群架构 10.2.1 跨数据中心通信的一些现实情况 10.2.2 星型架构 10.2.3 双活架构 10.2.4 主备架构 10.2.5 延展集群 10.3 MirrorMaker 10.3.1 配置 MirrorMaker 10.3.2 多集群复制拓扑 10.3.3 保护 MirrorMaker 10.3.4 在生产环境中部署 MirrorMaker 10.3.5 MirrorMaker 调优 10.4 其他跨集群镜像方案 10.4.1 Uber 的 uReplicator 10.4.2 LinkedIn 的 Brooklin 10.4.3 Confluent 的跨数据中心镜像解决方案 10.5 小结
📄 Page 9
第 11 章 保护 Kafka 11.1 锁住 Kafka 11.2 安全协议 11.3 身份验证 11.3.1 SSL 11.3.2 SASL 11.3.3 重新认证 11.3.4 安全更新不停机 11.4 加密 端到端加密 11.5 授权 11.5.1 AclAuthorizer 11.5.2 自定义授权 11.5.3 安全方面的考虑 11.6 审计 11.7 保护 ZooKeeper 11.7.1 SASL 11.7.2 SSL 11.7.3 授权 11.8 保护平台 保护密码 11.9 小结 第 12 章 管理 Kafka 12.1 主题操作 12.1.1 创建新主题 12.1.2 列出集群中的所有主题 12.1.3 列出主题详情 12.1.4 增加分区 12.1.5 减少分区 12.1.6 删除主题 12.2 消费者群组 12.2.1 列出并描述消费者群组信息 12.2.2 删除消费者群组 12.2.3 偏移量管理 12.3 动态配置变更 12.3.1 覆盖主题的默认配置 12.3.2 覆盖客户端和用户的默认配置 12.3.3 覆盖 broker 的默认配置 12.3.4 查看被覆盖的配置 12.3.5 移除被覆盖的配置 12.4 生产和消费 12.4.1 控制台生产者 12.4.2 控制台消费者
📄 Page 10
12.5 分区管理 12.5.1 首选首领选举 12.5.2 修改分区的副本 12.5.3 转储日志片段 12.5.4 副本验证 12.6 其他工具 12.7 不安全的操作 12.7.1 移动集群控制器 12.7.2 移除待删除的主题 12.7.3 手动删除主题 12.8 小结 第 13 章 监控 Kafka 13.1 指标基础 13.1.1 指标来自哪里 13.1.2 需要哪些指标 13.1.3 应用程序健康检测 13.2 服务级别目标 13.2.1 服务级别定义 13.2.2 哪些指标是好的 SLI 13.2.3 将 SLO 用于告警 13.3 broker 的指标 13.3.1 诊断集群问题 13.3.2 非同步分区的艺术 13.3.3 broker 指标 13.3.4 主题的指标和分区的指标 13.3.5 Java 虚拟机监控 13.3.6 操作系统监控 13.3.7 日志 13.4 客户端监控 13.4.1 生产者指标 13.4.2 消费者指标 13.4.3 配额 13.5 滞后监控 13.6 端到端监控 13.7 小结 第 14 章 流式处理 14.1 什么是流式处理 14.2 流式处理相关概念 14.2.1 拓扑 14.2.2 时间 14.2.3 状态 14.2.4 流和表 14.2.5 时间窗口
📄 Page 11
14.2.6 处理保证 14.3 流式处理设计模式 14.3.1 单事件处理 14.3.2 使用本地状态 14.3.3 多阶段处理和重分区 14.3.4 使用外部查找:流和表的连接 14.3.5 表与表的连接 14.3.6 流与流的连接 14.3.7 乱序事件 14.3.8 重新处理 14.3.9 交互式查询 14.4 Streams 示例 14.4.1 字数统计 14.4.2 股票市场统计 14.4.3 填充点击事件流 14.5 Streams 架构概览 14.5.1 构建拓扑 14.5.2 优化拓扑 14.5.3 测试拓扑 14.5.4 扩展拓扑 14.5.5 在故障中存活下来 14.6 流式处理应用场景 14.7 如何选择流式处理框架 14.8 小结 附录 A 在其他操作系统中安装 Kafka A.1 在 Windows 系统中安装 Kafka A.1.1 使用 Windows 的 Linux 子系统 A.1.2 使用原生 Java 包 A.2 在 macOS 系统中安装 Kafka A.2.1 使用 Homebrew A.2.2 手动安装 附录 B 其他 Kafka 工具 B.1 综合性平台 B.2 集群部署和管理 B.3 监控和查看数据 B.4 客户端开发库 B.5 流式处理 关于作者 关于封面
📄 Page 12
版权声明 Copyright © 2022 Chen Shapira, Todd Palino, Rajini Sivaram, and Krit Petty. All rights reserved. Simplified Chinese edition, jointly published by O'Reilly Media, Inc. and Posts & Telecom Press, 2022. Authorized translation of the English edition, 2022 O'Reilly Media, Inc., the owner of all rights to publish and sell the same. All rights reserved including the rights of reproduction in whole or in part in any form. 英文原版由 O'Reilly Media, Inc. 出版,2022。 简体中文版由人民邮电出版社有限公司出版,2022。英文原版的翻译得到 O'Reilly Media, Inc.的授权。此 简体中文版的出版和销售得到出版权和销售权的所有者——O'Reilly Media, Inc.的许可。 版权所有,未得书面许可,本书的任何部分和全部不得以任何形式重制。
📄 Page 13
O'Reilly Media, Inc.介绍 O'Reilly 以“分享创新知识、改变世界”为己任。40 多年来我们一直向企业、个人提供成功所必需之技能及 思想,激励他们创新并做得更好。 O'Reilly 业务的核心是独特的专家及创新者网络,众多专家及创新者通过我们分享知识。我们的在线学习 (Online Learning)平台提供独家的直播培训、图书及视频,使客户更容易获取业务成功所需的专业知 识。几十年来 O'Reilly 图书一直被视为学习开创未来之技术的权威资料。我们每年举办的诸多会议是活跃 的技术人员聚会场所,来自各领域的专业人士在此建立联系,讨论最佳实践并发现可能影响技术行业未来 的新趋势。 我们的客户渴望做出推动世界前进的创新之举,我们希望能助他们一臂之力。
📄 Page 14
业界评论 “O'Reilly Radar 博客有口皆碑。” ——Wired “O'Reilly 凭借一系列非凡想法(真希望当初我也想到了)建立了数百万美元的业务。” ——Business 2.0 “O'Reilly Conference 是聚集关键思想领袖的绝对典范。” ——CRN “一本 O'Reilly 的书就代表一个有用、有前途、需要学习的主题。” ——Irish Times “Tim 是位特立独行的商人,他不光放眼于最长远、最广阔的领域,并且切实地按照 Yogi Berra 的建 议去做了:‘如果你在路上遇到岔路口,那就走小路。’回顾过去,Tim 似乎每一次都选择了小路,而 且有几次都是一闪即逝的机会,尽管大路也不错。” ——Linux Journal
📄 Page 15
本书赞誉 这本书为如何在云端或本地使用好 Kafka 提供了所需的一切。它是开发人员和运维人员必备的读物。格 温、托德、拉吉尼和克里特将多年的智慧融汇到这本书中。如果你正在使用 Kafka,那么这本书正是你所 需要的。 ——Chris Riccomini,软件工程师、初创公司导师、TheMissingREADME 合著者 这是一部全面的 Kafka 原理和运维指南。 ——Sumant Tambe,LinkedIn 高级软件工程师 这是 Kafka 开发人员或管理员必备的读物。你既可以从头到尾仔细阅读,也可以把它当作一部参考手册。 不管怎样,它的写作清晰度和技术准确性都是一流的。 ——Robin Moffatt,Confluent 高级开发者布道师 这是为所有对 Kafka 感兴趣的工程师准备的一部基础文献。在 Robinhood,它帮助我们伸缩、升级和调优 Kafka,为我们快速增长用户群提供支撑。 ——Jaren M. Glover,互联网券商 Robinhood 早期工程师、天使投资人 这是所有从事与 Kafka 相关工作的人士——开发人员或系统管理员、初学者或专家、用户或贡献者——必 读的一本书。 ——Matthias J. Sax,Confluent 软件工程师、Apache Kafka 项目管理委员会成员 对在生产环境中使用 Kafka 的开发团队和分布式系统工程师来说,这是一部非常好的指南。它从入门级内 容开始,介绍了 Kafka 的内部原理、如何正确使用 Kafka,同时也指出了 Kafka 的缺陷所在。对于每一个 关键特性,作者都清楚地列出了那些只能从 Kafka 老手那里听到的注意要点,这些信息很难从其他地方获 得。鉴于这本书一流的清晰度和深度,我甚至想把它推荐给那些没有使用过 Kafka 的工程师,他们可以学 习 Kafka 的设计原则、决策,了解运维陷阱,以便在构建其他系统时做出更好的决策。 ——Dmitriy Ryaboy,Zymergen 软件工程副总裁
📄 Page 16
第 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
📄 Page 17
第 1 版序 这是一个激动人心的时刻,成千上万家企业正在使用 Kafka,其中就包括超过三分之一的《财富》世界 500 强公司。Kafka 是成长最快的开源项目之一,它的生态系统也在蓬勃发展。Kafka 正在成为流式数据的 管理和处理利器。 Kafka 从何而来?为什么要开发 Kafka?Kafka 到底是什么? Kafka 最初是 LinkedIn 的一个内部基础设施系统。我们发现,虽然有很多数据库和系统可以用来存储数 据,但在我们的架构里,刚好缺一个可以处理持续数据流的组件。在开发 Kafka 之前,我们实验了各种现 成的解决方案,从消息系统到日志聚合系统,再到 ETL 工具,它们都无法满足需求。 最后,我们决定从头开发一个系统。我们不想只是开发能够存储数据的系统(比如传统的关系数据库、 键–值存储引擎、搜索引擎或缓存系统),而是希望能够把数据看成持续变化和增长的流,并基于这样的 想法构建出一个数据系统,或是一种数据架构。 这个想法的适用范围比我们最初预想的更广。Kafka 一开始被用在社交网络的实时应用程序和数据流中, 现在已经成为下一代数据架构的基础。大型零售商正在基于持续数据流改造它们的基础业务流程,汽车公 司正在收集和处理来自互联网汽车的实时数据流,银行也正在重新思考如何基于 Kafka 改造它们的基础流 程和系统。 那么,Kafka 在这当中充当了怎样的角色?它与现有的系统又有哪些区别? 我们认为 Kafka 是一个流式平台:你可以在这个平台上发布和订阅数据流,并保存和处理它们,这就是构 建 Kafka 的初衷。以这种方式看待数据可能与人们已有的习惯有所不同,但它确实在构建应用程序和架构 方面表现出了强大的抽象能力。Kafka 经常被拿来与现有的技术[比如企业级消息系统、大数据系统(如 Hadoop)和数据集成或 ETL 工具]作比较。这里的每一项比较都有一定的道理,但也有失偏颇。 Kafka 有点儿像消息系统,我们可以用它来发布和订阅消息流。从这一点来看,它和 ActiveMQ、 RabbitMQ 或 IBM 的 MQSeries 等产品有些相似。尽管看上去相似,但 Kafka 与这些传统消息系统之间有 很多关键的不同。第一,作为现代分布式系统,Kafka 以集群的方式运行,可以自由伸缩,为公司所有的 应用程序提供支撑。Kafka 集群并不是一组独立运行的 broker,而是一个可以灵活伸缩的中心平台,能够 处理整个公司所有的数据流。第二,Kafka 可以按照要求存储数据,保存多久都可以。作为数据连接层, Kafka 提供了数据传递保证——可复制、持久化、保留多长时间完全由你决定。第三,流式处理将数据处 理的层次提升到了新的高度。一般的消息系统只传递消息,而 Kafka 的流式处理能力让你只用很少的代码 就可以动态地处理派生数据流和数据集。Kafka 的这些独到之处足以让你对其刮目相看,它不只是“另一 个消息队列”。 从另一个角度来看,可以把 Kafka 看成实时版的 Hadoop,这也是我们设计和构建 Kafka 的原始动机之 一。Hadoop 可以存储并定期处理大量的数据文件,Kafka 则可以存储并处理大型的持续数据流。从技术角 度来看,它们有着惊人的相似之处。很多人将新兴的流式处理看成批处理的超集,但他们忽略了很重要的 一点,即持续低延迟处理系统不断开拓的应用场景与批处理系统正在失守的应用场景非常不同。Hadoop 和大数据主要应用在数据分析上,而 Kafka 因其低延迟的特点更适合用在核心的业务应用上。业务事件时 刻在发生,Kafka 能够及时对这些事件做出响应,基于 Kafka 构建的服务可以直接为业务运营提供支撑, 并提升用户体验。 Kafka 与 ETL 工具或其他数据集成工具之间也可以做一番比较。Kafka 和这些工具都擅长移动数据,但它 们最大的不同在于 Kafka 颠覆了传统的思维。Kafka 并非只是把数据从一个系统抽出来再塞进另一个系统 那么简单,它其实是一个面向实时数据流的平台。也就是说,Kafka 不仅可以将现有的应用程序和数据系 统连接起来,还能用于增强这些触发数据流的应用程序。我们认为这种以数据流为中心的架构是非常重要 的。在某种程度上,这些数据流是现代数字科技公司的核心,其重要性可与它们的现金流相提并论。 兼具上述 3 个方面的能力,能够将所有的数据流整合到一起,流式处理平台因此变得极具吸引力。
📄 Page 18
当然,除了这些不同点,对那些习惯了开发请求与响应风格的应用程序和关系数据库的人来说,要学会基 于持续数据流构建应用程序也着实需要一个巨大的思维转变。借助这本书来学习 Kafka 再好不过了,从内 部架构到 API,所有内容都由对 Kafka 最了解的人亲手呈现。我希望你能够像我一样喜欢这本书。 ——Jay Kreps,Kafka 核心作者、Confluent 联合创始人兼 CEO
📄 Page 19
前言 给予一位技术图书作者的最佳赞赏莫过于这句话——“如果在刚开始接触这门技术时有这本书就好了”。在 开始撰写本书时,我们就是以这句话作为写作目标的。通过开发 Kafka,在生产环境中运行 Kafka,帮助 很多公司构建基于 Kafka 的系统并帮助它们管理数据管道,我们积累了很多经验,但也感到困惑:“应该 把哪些东西分享给 Kafka 新用户,让他们从新手变成专家?”本书就是我们日常工作最好的写照:运行 Kafka,并帮助其他人更好地使用 Kafka。 我们相信,书中提供的这些内容能够帮助 Kafka 用户在生产环境中更好地运行 Kafka,并基于 Kafka 构建 健壮的高性能应用程序。我们列举了一些非常流行的应用场景:基于事件驱动的微服务系统的消息总线、 流式处理应用程序以及大规模数据管道。本书通俗易懂,能够帮助每一位 Kafka 用户在任意的架构或应用 场景中使用好 Kafka。书中介绍了如何安装和配置 Kafka、如何使用 Kafka API、Kafka 的设计原则和可靠 性保证,以及 Kafka 的一些架构细节(比如复制协议、控制器和存储层)。我们相信,Kafka 的设计原理 和内部架构不仅是分布式系统构建者的兴趣所在,对那些在生产环境中部署 Kafka 或使用 Kafka 构建应用 程序的人来说也非常有用。越是了解 Kafka,你就越是能够更好地做出技术权衡。 在软件工程中,条条道路通罗马,每一个问题通常有多种解决方案。Kafka 为专家级用户提供了巨大的灵 活性,而新手则需要克服陡峭的学习曲线才能成为专家。Kafka 通常会告诉你如何使用某个特性,但不会 告诉你为什么要用它或为什么不该用它。我们会尽可能详细地解释我们的设计决策和权衡背后的缘由,以 及用户在哪些情况下应该或不应该使用 Kafka 提供的特性。
📄 Page 20
读者对象 本书是为使用 Kafka API 开发应用程序的工程师和在生产环境中安装、配置、调优、监控 Kafka 的运维工 程师(也叫站点可靠性工程师、运维人员或系统管理员)而写的。我们也考虑到了为整个公司设计和构建 数据基础架构的数据架构师和数据工程师。某些章(特别是第 3 章、第 4 章和第 14 章)主要面向 Java 开 发人员,并假设读者已经熟悉基本的 Java 编程,比如异常处理和并发编程。其他章(特别是第 2 章、第 10 章、第 12 章和第 13 章)假设读者在 Linux 的运行、存储和网络配置方面有一定的经验。剩余各章讨 论了具有一般性的软件架构,不要求读者具备特定的知识。 还有一类可能对本书感兴趣的人是经理或架构师,他们不直接使用 Kafka,但会与使用 Kafka 的工程师打 交道。他们也有必要了解 Kafka 所能提供的保证机制以及他们的同事在构建基于 Kafka 的系统时所做出的 技术权衡。本书可以成为企业管理人员的利器,确保他们的工程师在 Kafka 方面训练有素,掌握工作当中 需要用到的知识。
The above is a preview of the first 20 pages. Register to read the complete e-book.

💝 Support Author

0.00
Total Amount (¥)
0
Donation Count

Login to support the author

Login Now
Back to List