Faust是一个将Kafka Streams的概念移植到Python的三方库。如果您不熟悉Kafka,那么在阅读该系列之前,最好先阅读Kafka文档和Kafka Streams。
我们先介绍Faust的基础知识,包括核心概念和通用API。
Kafka Streams在Apache Kafka之上为客户端库提供了一些抽象。因为Faust在很大程度上重用了完全相同的概念,所以学习Faust的过程就是学习Kafka Streams的过程。
好的,让我们开始吧!
应用(Application)
应用程序(Application)是Faust流处理过程的起点,它是该库的一个实例,并通过Python装饰器提供对Faust大部分核心API的访问。
要创建应用程序,您需要一个应用程序ID,一个代理(broker)和一个驱动程序(driver)以用于持久存储数据(可选)。
import faust
app = faust.App('my-app-id', broker='kafka://', store='rocksdb://')
代理(Agent),流(Stream)和处理器(Processor)
用Kafka Streams术语来说,Faust代理是一个流处理器,它订阅一个主题并处理每条消息。
在Faust中,代理(Agent)用于装饰异步函数,可以并行处理无限数据流。如果您不熟悉asyncio,则需要先查看