<
您正在查看旧版 Kafka 的文档 - 在此处查看我们的当前文档。
文档
Kafka 2.4 文档
早期版本:0.7.x、0.8.0、0.8.1.X、0.8.2.X、0.9.0.X、0.10.0.X、0.10.1.X、0.10.2.X、0.11.0.X、1.0.X、1.1.X、2.0.X、2.1.X、2.2.X、2.3.X。1. 开始使用
1.1 介绍
1.2 使用案例
以下是 Apache Kafka® 的一些常见使用案例的描述。 有关其中许多领域的实际应用概述,请参阅此博客文章。
消息
Kafka 可以很好地替代更传统的消息代理。 使用消息代理的原因有很多(将处理与数据创建者分离、缓冲未处理的消息等)。 与大多数消息传递系统相比,Kafka 具有更好的吞吐量、内置分区、复制和容错功能,这使其成为一个很好的 适用于大规模消息处理应用程序的解决方案。根据我们的经验,消息传递用途通常吞吐量相对较低,但可能需要较低的端到端延迟,并且通常依赖于强大的 Kafka 提供的持久性保证。
在这个领域,Kafka 可与 ActiveMQ 或 RabbitMQ 等传统消息传递系统相媲美。
网站活动跟踪
Kafka 的原始用例是能够将用户活动跟踪管道重建为一组实时发布-订阅源。 这意味着网站活动(页面查看、搜索或用户可能执行的其他操作)将发布到中心主题,每个活动类型一个主题。 这些订阅源可用于一系列使用案例,包括实时处理、实时监控和加载到 Hadoop 或 用于离线处理和报告的离线数据仓库系统。活动跟踪通常非常高,因为每个用户页面视图都会生成许多活动消息。
指标
Kafka 通常用于运营监控数据。 这涉及聚合来自分布式应用程序的统计数据,以生成运营数据的集中源。日志聚合
许多人使用 Kafka 作为日志聚合解决方案的替代品。 日志聚合通常从服务器收集物理日志文件,并将它们放在一个中心位置(可能是文件服务器或 HDFS)进行处理。 Kafka 抽象出文件的详细信息,并将日志或事件数据更清晰地抽象为消息流。 这允许更低的处理延迟,并更轻松地支持多个数据源和分布式数据使用。 与 Scribe 或 Flume 等以日志为中心的系统相比,Kafka 提供了同样好的性能、更强的持久性保证(由于复制)、 以及更低的端到端延迟。流处理
Kafka 的许多用户在由多个阶段组成的处理管道中处理数据,其中原始输入数据从 Kafka 主题中使用,然后 聚合、丰富或以其他方式转换为新主题以供进一步使用或后续处理。 例如,用于推荐新闻文章的处理管道可能会从 RSS 源中抓取文章内容并将其发布到“文章”主题; 进一步的处理可能会规范化或删除重复的内容,并将清理后的文章内容发布到新主题; 最终处理阶段可能会尝试向用户推荐此内容。 此类处理管道根据各个主题创建实时数据流图。 从 0.10.0.0 开始,Apache Kafka 中提供了一个名为 Kafka Streams 的轻量级但功能强大的流处理库,用于执行上述数据处理。 除了 Kafka Streams,其他开源流处理工具还包括 Apache Storm 和 Apache Samza。事件溯源
事件溯源是一种应用程序设计风格,其中状态更改被记录为 按时间排序的记录序列。Kafka 对非常大的存储日志数据的支持使其成为以这种样式构建的应用程序的出色后端。提交日志
Kafka 可以用作分布式系统的一种外部提交日志。日志有助于在节点之间复制数据并充当重新同步 失败节点恢复其数据的机制。 Kafka 中的日志压缩功能有助于支持这种用法。 在这个用法中,Kafka 类似于 Apache BookKeeper 项目。1.3 快速开始
1.4 生态系统
在主发行版之外,还有大量工具与 Kafka 集成。 生态系统页面列出了其中的许多工具,包括流处理系统、Hadoop 集成、监控和部署工具。1.5 从以前的版本升级
2. API 接口
3. 配置
4. 设计
5. 实施
6. 运营
7. 安全性
8. Kafka 连接
9. kafka流
Kafka Streams 是一个客户端库,用于处理和分析存储在 Kafka 中的数据。它建立在重要的流处理概念之上,例如正确区分事件时间和处理时间、窗口支持、恰好一次处理语义以及简单而高效的应用程序状态管理。
Kafka Streams 的进入门槛很低:您可以在单台机器上快速编写和运行小规模的概念验证;您只需在多台计算机上运行应用程序的其他实例,即可扩展到大批量生产工作负载。Kafka Streams 利用 Kafka 的并行模型以透明方式处理同一应用程序的多个实例的负载均衡。
要了解有关 Kafka Streams 的更多信息,请阅读本节。