我正在使用Kafka Connect以分布式模式将数据从Web服务发送到Kafka(版本0.10.1)。 poll()
method文档指出:
轮询此SourceTask以获取新记录。如果没有,该方法应该阻止 数据目前可用。
但是,我不确定Kafka是否可以通过多个线程调用poll()
方法。对Web服务的请求非常耗时,它们是用这种方法完成的,我希望避免多次发送它们。
有question表示在版本0.10.2.1-cp2之前,poll()
方法可以由不同的线程调用。但是,从release notes我无法确认这种情况是否会在较新版本上发生。
答案 0 :(得分:1)
至少在Kafka 0.11.0.0中,每个SourceTask
和SinkTask
实例上的方法都是从专用于该任务的线程中调用的。相同的线程用于任务实例的生命周期,直到它被停止。即使任务暂停,线程也会阻塞。
我的理解是,这是至少0.10.1.0以来的行为,但您必须检查代码库以确定。