Kafka Streams 是什么,为什么你应该关心它们?

发布: (2026年2月11日 GMT+8 17:28)
5 分钟阅读
原文: Dev.to

Source: Dev.to

什么是流处理?

“流处理是一种计算范式,侧重于在数据生成的同时持续处理,而不是先存储再批量处理。它使系统能够在近实时的情况下对事件作出响应,从而实现低延迟的分析、监控和决策。流处理系统摄取数据流,应用转换或计算,并在输入仍在产生时输出结果。” – Martin Kleppmann

与其在凌晨 2:00 存储数据后再运行大批量作业,不如在数据到达的那一刻立即处理。

Kafka Streams

“Kafka Streams 是一个轻量级、基于 Java 的库,用于构建实时、可扩展的流处理应用程序,这些应用程序从 Apache Kafka 主题读取并写入数据。它提供了过滤、映射、分组、窗口和聚合等连续处理的高级抽象,同时在内部处理容错和状态管理。”

使用 Kafka Streams,我们拥有一个自然契合流处理范式的工具。

注意: 这是一种简化的思维模型,用于解释流处理和 Kafka Streams 的角色,并非 YouTube 内部架构的精确描述。像 YouTube 这样的大公司会使用多种流处理器、批处理 + 流式管道、机器学习模型、特征存储等,以提供无缝的用户体验。

设计流管道

在 Kafka Streams 中,逻辑表现为 拓扑结构——一个有向无环图(DAG),由表示对数据流进行转换步骤的处理节点组成。

我们以 观看历史用户活动 作为真相来源(从 Kafka 主题读取的 Source Processor)。

1. 数据脱敏与清洗

  • 消费原始用户交互事件
  • 删除或掩码不必要或敏感的字段
  • 标准化事件结构

此步骤确保下游处理器只在相关且安全的数据上工作,降低耦合度并提升可维护性。

2. 相似内容推荐

  • 输入: 用户 ID、频道名称和类别(例如,观看 WWE 视频 → 类别 Professional Wrestling
  • 目标: 立即推荐相关的推广内容,如 AEW 或 TNA

原始 KStream 被映射或转换以提取相关元数据,然后通过 Sink Processor 将结果写入新的 Kafka 主题 similar-content

3. 首选视频时长

(分析用户偏好的视频时长并相应标记事件的逻辑。)

4. 商品发现

(基于观看行为提供相关商品推荐的逻辑。)

一旦数据以明确的事件形式发出,下游应用即可独立分析并更高效地为用户服务——这也让你保住高薪工作,全部归功于流处理和 Kafka Streams。😉

Kafka Streams 作为转换器,而非大脑

Kafka Streams 在事件驱动架构中充当高性能的 TransformerSupplier。它清洗、塑形并路由数据,使下游微服务能够基于这些数据采取行动。这正是一套设计良好的事件驱动系统的标志。

你仅仅触及了实时数据编排的表面。

为什么不直接使用传统数据库?

除了“写入量大”之外,数据库还带来结构性缺陷,例如:

  • 延迟
  • 对持续摄入的可扩展性有限
  • 处理乱序事件的困难

流处理正面解决了这些挑战。

敬请期待第 2 部分。

0 浏览
Back to Blog

相关文章

阅读更多 »

你再也不能相信互联网了

markdown 这是一个 “byte” 帖子。它可能没有其他帖子那么详细。我喜欢奇怪且有点晦涩的事物。这是我的习惯,而且很多 t...