本文概述
- 卡夫卡流
- 流处理
卡夫卡流通常,流定义了随时间提供的数据元素的流。在Apache Kafka中,流是事实或记录(键值对)的连续实时流。 Kafka Streams是一个轻量级的内置客户端库,用于构建不同的应用程序和微服务。流的输入和输出数据都存储在Kafka集群中。 Kafka Streams集成了编写的简便性,并在客户端上部署了标准的Java和Scala应用程序。
为什么选择Kafka Streams?
以下属性描述了Kafka Streams的使用:
- Kafka Streams具有高度可伸缩性和弹性。
- 可以部署到容器,云,裸机等
- 它适用于任何大小的用例,即小型,中型或大型。
- 具有容错能力。如果发生任何故障,则可以由Kafka Streams处理。
- 它允许编写标准的Java和Scala应用程序。
- 对于流传输,它不需要任何单独的处理群集。
- Mac,Linux和Windows操作系统均支持Kafka Streams。
- 除了Kafka本身之外,它没有任何外部依赖性。
流处理拓扑
Apache Kafka提供流作为最重要的抽象。流是可偿还的,有序的以及不可变记录的容错序列。
流处理应用程序是使用Kafka Streams库的程序。它需要一个或多个处理器拓扑来定义其计算逻辑。处理器拓扑以图形方式表示,其中“流处理器”是其节点,每个节点通过“流”作为其边缘进行连接。
流处理器表示在流中转换数据的步骤。它一次从拓扑中存在的上游处理器接收一条输入记录,应用其操作,最后向其下游处理器产生一个或多个输出记录。
文章图片
【kafka流处理】拓扑中存在以下两个主要处理器:
- 源处理器:没有任何上游处理器的流处理器的类型。该处理器使用来自一个或多个主题的数据,并为其拓扑生成输入流。
- 接收器处理器:这是没有下游处理器的流处理器类型。该处理器的工作是将收到的数据从其上游处理器发送到指定的主题。
- Kafka Streams DSL:它建立在Stream Processors API之上。此处,DSL扩展为“特定于域的语言”。推荐初学者使用。
- 处理器API:开发人员通常使用此API定义任意流处理器,该处理器一次处理一个接收到的记录。此外,它将这些处理器与其状态存储相连接,以构成处理器拓扑。这种组成的拓扑表示定制的处理逻辑。
推荐阅读
- kafka流处理的关键概念
- kafka实时例子
- kafka创建twitter生产者(producer)
- kafka连接(connect)
- kafka监控和管理
- 在java中创建kafka消费者(consumer)
- kafka生产者回调(callback)
- 在java中创建kafka生产者(producer)
- 在intellij idea中安装kafka