代码之家  ›  专栏  ›  技术社区  ›  Jaime Caffarel Daniel Koverman

kafka SourceTask类的poll()方法是否线程安全?

  •  0
  • Jaime Caffarel Daniel Koverman  · 技术社区  · 7 年前

    我正在使用 Kafka Connect 以分布式模式将数据从Web服务发送到Kafka(版本0.10.1)。这个 poll() method 文件表明:

    数据目前可用。

    轮询() 方法可以由Kafka的多个线程调用。对Web服务的请求非常耗时,它们是用这种方法完成的,我希望避免多次发送它们。

    有一个 question 轮询() 方法可以由不同的线程调用。然而,从 release notes 我无法确认这种情况是否在新版本上没有发生。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Randall Hauch    7 年前

    从框架的角度来看,Kafka Connect任务不需要是线程安全的,并且任务不应该假设它们可以通过静态机制与其他任务和连接器通信。请注意,当然可能有多个任务在不同的线程中运行。

    SourceTask SinkTask 实例是从专用于该任务的线程调用的。在任务实例的生存期内使用相同的线程,直到其停止。即使任务暂停,线程也会阻塞。