这是开发人员指南对动态连接器 https://docs.confluent.io/current/connect/devguide.html#dynamic-connectors 的描述
并非所有连接器都有一组静态分区,因此连接器实现还负责监视外部系统是否存在可能需要重新配置的任何更改。例如,在 JDBCSourceConnector 示例中,连接器可能会为每个任务分配一组表。创建新表时,它必须发现这一点,以便可以通过更新其配置将新表分配给其中一个任务。当它注意到需要重新配置的更改(或任务数的更改(时,它会通知框架,框架会更新任何相应的任务
我不确定我应该怎么做。
连接器类(扩展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>)
中生成一个线程?
是的,确切地说。
我如何"通知框架"。
通过源连接器上下文的requestTaskReconfiguration()
方法。