我正在尝试对到达 Kafka 主题(例如“数据主题”)的消息执行查找。 查找源是另一个 Kafka 主题(比如“查找主题”)。 为了使用 faust 做到这一点,我使用 lookuptopic 创建了一个表,并创建了一个代理来用新消息更新这个表。 在同一个应用程序中,我创建了另一个代理来执行查找(基于公共 ID 属性)。 查找表中只有 1000 条记录,性能有点慢——每条记录 8 毫秒,相当于每秒 125 条记录。 我只是想验证我是否以正确的方式进行操作(抱歉,我无法阅读完整的 faust 文档)。

这是代码

import faust,time
from faust import current_event

app = faust.App(
    'lookup_table_v1',
    broker='kafka://localhost:9092',
    topic_partitions=4,store='rocksdb://'
)

class lookupSchema(faust.Record):
    id: str
    uuid: str

class tableSchema(faust.Record):
    uuid: str

class dataSchema(faust.Record):
    id: str


lookup_topic = app.topic('lookuptopic', value_type=lookupSchema)
data_topic = app.topic('datatopic', value_type=dataSchema)

lookup_table = app.Table('lookup_table')


# Agent to Update Lookup Table
@app.agent(lookup_topic)
async def count_lookup_table(lookup_stream):
    async for record in lookup_stream:
        lookup_table[record.id] = tableSchema.loads({"uuid":record.uuid}) 


# Agent to Perform Lookups for Data arriving in Data Topic
@app.agent(data_topic)
async def perform_lookup(data_stream):
  async for data in data_stream:
    event = current_event()
    print('found:'+lookup_table[data.id].to_representation()["uuid"]+'--> ms:'+str(round((time.time()-event.message.timestamp)*1000)))

  ask by some_user translate from so

本文未有回复,本站智能推荐:

1回复

理解将faust主题与faust表和分区结合起来

我有两个主题: 1 个带有事件数据的主题( EventData ,比方说5 个分区)——这个主题的日志使用 CustomerID 作为键。 1 个带有EnrichmentKVs数据的紧凑主题( EnrichmentKVs ,假设有3 个分区)——此主题的日志使用相同的 CustomerID
2回复

如何在多个代理或faust计时器之间共享faust表?

我正在尝试在一段时间后将 faust 表的数据(计数)发布到 kafka 主题。 当我发布一些简单的字符串时,计时器正在工作,但它无法以某种方式访问​​表的数据。 下面是定时器的代码:@app.timer(interval=10.0)async def publish_to_anomaly_topi
1回复

如何将Faust与Django集成?

我正在尝试将Faust与Django集成以将消息发布到Kafka。 这是浮士德回购中的示例: https : //github.com/robinhood/faust/tree/master/examples/django 我做了一些修改,并创建了视图以通过Faust将数据推送到Kafka。 但是,
1回复

Faust与Kafka-python的区别

我找不到任何答案: Faust和kafka-python之间有什么区别? 偏爱其中任何一个有什么优点/缺点吗? 据我了解: Kafka是用Java编写的, Kafka-python是一个与“Java 流”通信的Python客户端 Faust是一个纯粹的“Python 流” 所以,如果我打算只使
1回复

如何在faust中使用并发?

我正在使用 faust 并希望利用并发功能。 列出的示例并没有完全演示并发的使用。 我想做的是,从 kafka 生产者和 unnest json 读取。 然后将货物发送到一个进程来计算账单等。我应该一次发送 10 个货物到一个进行计算的函数。 为此,我使用并发,因此可以同时计算 10 次发货。
5回复

发布到kafka主题的Faust示例

我很好奇您应该如何表达您希望将消息快速传递到 Kafka 主题。 他们自述文件中的示例似乎没有写入主题: 我希望上面代码中的hello.send向主题发布消息,但它似乎没有。 有很多从主题中读取的示例,以及许多使用 cli 推送 ad-hoc 消息的示例。 梳理完文档后,我没有看到任何明确的代码发布
1回复

PyCharm中Faust工作线程的调试模式

我正在尝试在调试模式下运行 faust worker ( https://faust.readthedocs.io )。 在这一刻我做了这个: 如您所见,这不是实际的调试。 我期待这个: 你能说我做错了什么吗?
1回复

使用kafka运行Faust会因ConsumerStoppedError崩溃

我刚刚安装了 Faust 并运行了一个基本程序来通过 Kafka 发送和接收消息。我使用了( 发布到 kafka 主题的 Faust 示例)中提到的示例代码,而最初运行该程序时,它连接到了 Kafka(它也在我的机器)。 但是在尝试使用 Kafka 时断开连接并且应用程序崩溃并出现以下异常 在调试消