外行术语中的流处理和 Kafka 流是什么?

What are stream-processing and Kafka-streams in layman terms?

要了解什么是kafka-streams,我应该知道什么是stream-processing。当我开始在线阅读它们时,我无法全面了解它们,因为它是一个永无止境的新概念链接树。
谁能用一个简单的真实示例来解释什么是 stream-processing
以及如何将它与 kafka-streams 与生产者消费者架构联系起来?

谢谢。

流处理

流处理基于无限事件流的基本概念(与我们通常在关系数据库中找到的静态有界数据集形成对比)。

考虑到无限的事件流,我们经常想用它做点什么。无限的事件流可以是来自传感器的温度读数、来自路由器的网络数据、来自电子商务系统的订单等等。

让我们想象一下,我们想要获取这个无限的事件流,也许它的制造事件来自一家工厂,大约 'widgets' 正在制造。

我们想根据 'widget' 的特征过滤该流,如果是 red,则将其路由到另一个流。也许我们将使用该流进行报告,或驱动另一个只需要响应 red widgets 事件的应用程序:

简而言之,这就是流处理。流处理用于执行以下操作:

  • 过滤流
  • 聚合(例如,某个字段在一段时间内的总和,或给定 window 中的事件计数)
  • 充实(在事件流中导出值,或加入另一个流)

如您所说,关于这方面的文章很多;不想给你另一个link跟随,我会推荐this one

卡夫卡流

Kafka Streams 一个流处理库,作为 Apache Kafka 的一部分提供。您在 Java 应用程序中使用它来进行流处理。

在上述示例的上下文中,它看起来像这样:

Kafka Streams 建立在 Kafka producer/consumer API 之上,并抽象掉了一些低级的复杂性。您可以在 the documentation.

中了解更多信息