【问题标题】:Poll Interval for Kafka Connect SourceTaskKafka Connect SourceTask 的轮询间隔
【发布时间】:2017-09-03 00:17:24
【问题描述】:

我正在使用 Kafka-Connect API 实现自定义源连接器,可用于轮询 REST-API 并将 JSON 响应接收到 Kafka 主题中。

现在我想知道如何实现 SourceTask 的轮询间隔,JDBC 连接器如何提供轮询间隔。我必须在某个地方将线程设置为睡眠状态,但我必须在哪里执行此操作?

【问题讨论】:

    标签: java apache-kafka apache-kafka-connect


    【解决方案1】:

    使用max.poll.interval.ms

    请参考此链接:https://kafka.apache.org/documentation/

    【讨论】:

    • 这不是我想要的。 max.poll.interval.ms 定义了 poll 调用之间的最大间隔,在消费者离开组之前,例如如果线程被阻塞。它像超时一样工作。但我正在寻找一种解决方案来控制调用 poll 方法的频率。默认情况下它是连续的,我正在寻找从连接器线程调用 poll 的解决方案,例如每五分钟一次。
    • 这个属性是给消费者的,问题是关于Kafka Connect Source Connector。
    【解决方案2】:

    我在我的SourceTask 实现中解决了这个用例,方法是添加一个long 类型的私有字段来存储时间戳。在第一次 poll() 调用时,该字段尚未初始化,因此已配置的 REST-API 被轮询。在第一次调用时,提到的long 字段将使用当前时间戳进行初始化。在所有随后的poll() 调用中,前一次调用的时间戳得到检查。如果自上次poll() 以来经过的毫秒数小于配置的两次轮询之间的间隔,我将线程发送到睡眠,因为配置的毫秒已经过去。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-01
      • 1970-01-01
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 2016-06-21
      相关资源
      最近更新 更多