什么是Kafka

269 阅读3分钟

这是我参与更文挑战的第6天,活动详情查看: 更文挑战

Kafka 允许您构建实时流数据管道。

Kafka 支持内存中微服务(即 actor、Akka、 Baratine.io、 QBit、reactors、 reactive、 Vert.x、 RxJava、 Spring Reactor)。Kafka 允许您构建对流做出反应的实时流应用程序,以进行实时数据分析、转换、反应、聚合、加入实时数据流以及执行 CEP(复杂事件处理)。

您可以使用 Kafka 来帮助收集指标/KPI、汇总来自多个来源的统计数据以及实施事件溯源 。您可以将它与微服务(内存中)和参与者系统一起使用以实现内存中服务(分布式系统的外部提交日志)。

您可以使用 Kafka 在节点之间复制数据、重新同步节点以及恢复状态。虽然 Kafka 主要用于实时数据分析和流处理,但您也可以将其用于日志聚合、消息传递、点击流跟踪、审计跟踪等等。

在数据科学和分析很重要的世界中,捕获数据以输入您的数据湖和实时分析系统也是 一件大事。由于 Kafka 可以承受这些繁重的用例,因此 Kafka 很重要。

Kafka 有记录保留

Kafka 集群保留所有已发布的记录。如果您不设置限制,它将保留记录,直到磁盘空间用完为止。您可以设置基于时间的限制(可配置的保留期)、基于大小的限制(可根据大小配置)或压缩(使用密钥保留最新版本的记录)。例如,您可以将保留策略设置为三天、两周或一个月。主题日志中的记录可供使用,直到被时间、大小或压缩丢弃。消费速度不受大小影响,因为 Kafka 总是写入主题日志的末尾。

Apache Kafka 是一个分布式流系统,可以发布和订阅记录流。另一方面,它是一个企业消息传递系统。它是一个非常快速、水平可扩展和容错的系统。Kafka 有四个核心 API:

Producer API: 允许客户端连接到集群中运行的 Kafka 服务器,并将记录流发布到一个或多个 Kafka 主题。

消费者 API:允许客户端连接到集群中运行的 Kafka 服务器,并使用来自一个或多个 Kafka 主题的记录流。Kafka 使用来自 Kafka 主题的消息。

Streams API:允许客户端通过使用来自一个或多个主题的流并将流生成到其他输出主题来充当流处理器。这允许转换输入和输出流。

连接器 API:允许编写可重用的生产者和消费者代码;例如,如果我们想从任何 RDBMS 读取数据以将数据发布到主题,并从主题中消费数据并将其写入 RDBMS。我们可以为各种数据源创建可重用的源和接收器连接器组件