这是开发人员指南对动态连接器https://docs.confluent.io/current/connect/devguide.html#dynamic-connectors所说的内容
并非所有连接器都具有静态分区集,因此连接器实现还负责监视外部系统是否存在可能需要重新配置的任何更改。例如,在JDBCSourceConnector示例中,Connector可能会为每个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()
?
谢谢。
我想在
start(Map<String,String>)
中生成一个监视外部系统的线程吗?
是的,确切地说。
我如何“通知框架”。
通过SourceConnector上下文的requestTaskReconfiguration()
方法。