Это то, что говорится в руководстве разработчика о динамических соединителях 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>)
, который контролирует внешнюю систему?
И если обнаружены изменения, как мне «уведомить платформу».Есть ли какой-то вызов API в Java SDK, который делает это или означает, что мне нужно позвонить stop()
, а затем start()
?
Спасибо.