📅  最后修改于: 2021-01-05 02:59:16             🧑  作者: Mango
到目前为止,我们了解了主题,分区,将数据发送到Kafka以及从Kafka消费数据。这可能是较低的抽象级别。因此,需要更高级别的抽象。因此,这引入了Kafka流的概念。
通常,流定义了随时间提供的数据元素的流。在Apache Kafka中,流是事实或记录(键值对)的连续实时流。 Kafka Streams是一个轻量级的内置客户端库,用于构建不同的应用程序和微服务。流的输入和输出数据都存储在Kafka集群中。 Kafka Streams集成了在客户端编写和部署标准Java和Scala应用程序的简便性。
以下属性描述了Kafka Streams的使用:
与数据流编程类似,流处理允许很少的应用程序更简单,更轻松地利用有限形式的并行处理。因此,流处理使应用程序的并行执行变得简单。业务各方使用称为“流处理”软件/应用程序的软件来实现核心功能。
Apache Kafka提供流作为最重要的抽象。流是可偿还的,有序的以及不可变记录的容错序列。
流处理应用程序是使用Kafka Streams库的程序。它需要一个或多个处理器拓扑来定义其计算逻辑。处理器拓扑以图形方式表示,其中“流处理器”是其节点,每个节点通过“流”作为其边缘进行连接。
流处理器表示将数据转换为流的步骤。它一次从拓扑中存在的上游处理器接收一条输入记录,应用其操作,最后向其下游处理器产生一个或多个输出记录。
拓扑中存在以下两个主要处理器:
此外,Kafka Streams提供了两种表示流处理拓扑的方法: