我正在使用kafkapython从一个主题中获取数据,并将其输入到ElasticSearch中。
据我所知,轮询数据有两种方式:
对消费者使用循环
for message in consumer:
// Process your message
...
..
定期呼叫轮询:
while (repeat at some interval):
messages = consumer.poll()
// Process your message
...
..
这些让我想到以下问题:
选项1如何在内部工作(调用(轮询、提交等)
方案2的资源密集程度会降低吗 poll()
是否定期打电话?
1条答案
按热度按时间9lowa7mx1#
从主题中获取数据并将其输入到ElasticSearch中
首先,不要为此使用python或手动使用者—使用kafka connect框架,它具有更好的容错性和可伸缩性约束。
选项1如何在内部工作
您可以阅读源代码并找到答案;)
poll
将在处理每个批之间进行内部调用,假设pythonapi执行预取方案2的资源密集程度会降低吗
您需要考虑,不调用poll将导致消费者组重新平衡,因此需要自己的资源来执行该操作。