如何使用Python在Kafka Consumer中创建聚合

时间:2019-01-31 06:20:58

标签: python apache-kafka kafka-python

嗨,我使用python与模块from kafka import KafkaConsumer编写了kafka消费者应用程序

现在我有以下使用的json字段

{
  "user": "bob",
  "src_ip": "45.6.7.2"
 }

现在,我如何每隔5或10分钟(可配置时间)使用一次消息,然后检查给定时间内每个用户的src IP是否相同。如果不同,则必须发送以将其保存在数据库中,或通过REST POST发送到其他位置。

如何使用python消费者应用程序实现此目标?

1 个答案:

答案 0 :(得分:0)

可以!要获取消息的时间戳,请尝试msg.timestamp

要确保每个用户的数据始终路由到相同的分区(因此它将始终由同一使用者处理),请在生成消息时使用key=data["user"]

最后,您需要了解,在消费者应用程序的生命周期内,分区分配可能会发生变化。因此,请考虑当消费者在5分钟或10分钟的窗口之一中途崩溃或丢失其任务时该怎么办。失去上下文关系重要吗?如果没有,您可能可以为每个使用者使用一个简单的内存中数据存储。如果失去上下文确实很重要,则您可能需要考虑使用定期手动偏移提交或使用中央数据存储的替代策略。