Динамические коннекторы Kafka Connect в Java - PullRequest
0 голосов
/ 15 сентября 2018

Это то, что говорится в руководстве разработчика о динамических соединителях 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()?

Спасибо.

1 Ответ

0 голосов
/ 16 сентября 2018

Должен ли я создавать поток в start(Map<String,String>), который контролирует внешнюю систему?

Да, точно.

как мне «уведомить рамку».

С помощью метода requestTaskReconfiguration() контекста SourceConnector.

...