Java中的Kafka Connect Dynamic连接器

时间:2018-09-15 20:02:30

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

这是开发人员指南关于动态连接器https://docs.confluent.io/current/connect/devguide.html#dynamic-connectors

的看法
  

并非所有连接器都具有一组静态分区,因此连接器实现还负责监视外部系统是否有可能需要重新配置的任何更改。例如,在JDBCSourceConnector示例中,连接器可能为每个Task分配了一组表。创建新表时,它必须发现这一点,以便可以通过更新其配置将新表分配给任务之一。当它发现需要重新配置的更改(或任务数量的更改)时,会通知框架,并且框架会更新所有相应的任务

我不确定该怎么做。

连接器类(扩展org.apache.kafka.connect.source.SourceConnector)实现taskConfigs(int)start(Map<String,String>)stop()config()version()taskClass()。它没有poll()或类似方法。

我想在start(Map<String,String>)中产生一个监视外部系统的线程吗?

如果检测到更改,如何“通知框架”。 Java SDK中是否有一些API调用可以执行此操作,或者这意味着我必须先调用stop(),再调用start()

谢谢。

1 个答案:

答案 0 :(得分:1)

  

我想在start(Map<String,String>)中生成一个监视外部系统的线程吗?

是的,

  

我如何“通知框架”。

通过SourceConnector上下文的requestTaskReconfiguration()方法。