以下是我的用例场景,其中一个应用程序将数据推送到三个不同的kafka主题(有唯一的应用程序ID),输出将进入后续的队列4和队列5。我已经实现了以下所示的管道。
我面临的唯一问题是如何合并主题5中特定app_id的所有输出。应用程序在此管道中推送多个请求,每个请求具有唯一的ID。因此,对特定app_id的所有请求可能都不是顺序的。队列5中可能还有其他app_id数据。
在为主题5创建使用者时,我应该为每个app_id使用不同的group_id吗?
如果您有任何想法,请帮助我。我正在使用kafka-python。
from kafka import KafkaConsumer, KafkaProducer
KAFKA = dict()
KAFKA['producer'] = KafkaProducer(bootstrap_servers=[server]))
for queue in ['queue 1', 'queue 2', 'queue 3', 'queue 4', 'queue 5']:
KAFKA['queue'] = KafkaConsumer(queue,
bootstrap_servers=[server],
auto_offset_reset='earliest', enable_auto_commit=True,
auto_commit_interval_ms=1000, group_id='group'+queue)
答案 0 :(得分:1)
如果您只想一次阅读三个主题,则可以KafkaConsumer('1,2,3')
如果目标是拥有多个这样的主题链,我也建议faust