Я запускаю коннектор Kafka в распределенном режиме в локальном «запускающем» контейнере Docker (отдельно от контейнера узла Kafka). Коннектор работает как положено, но когда я убиваю пусковой контейнер, коннектор перестает работать. Я ожидал, что он продолжит работать, поскольку считал, что он зарегистрирован и запущен на рабочем узле Kafka в другом контейнере. Моя установка более подробно описана ниже:
В настоящее время я запускаю все через контейнеры Docker локально. У меня есть:
- Узел Zookeeper (3.4.9)
- Узел Kafka (Apache, 0.10.1.0)
- Узел запуска.
узел запуска загружает соответствующую версию Kafka и распаковывает ее содержимое. Затем он создает источник коннектора, устанавливает путь к классам для включения необходимых JAR-файлов, а затем выполняет коннектор как таковой:
connect-distributed.sh config/connect-distributed.properties
Файл распределенных свойств устанавливает идентификатор группы, различные названия тем, схемы и преобразователи, а также серверы начальной загрузки (которые указывают на узел Kafka (2) выше).
Кажется, что эта команда выполняется правильно, и http-служба спокойного соединителя запускается успешно. Затем я могу отправить запрос POST на http://example:8083/connectors, предоставив конфигурацию для соединителя. задания. Команда завершается без ошибок, и соединитель успешно запускается. Я могу использовать тему в узле Kafka (2), и я вижу вывод, который указывает, что коннектор работает и отправляет данные.
Когда я убиваю узел запуска (3), я ожидаю, что соединитель продолжит работу, поскольку я зарегистрировал его в кластере Kafka, хотя и в кластере из одного. Соединитель не продолжает работать и, кажется, умирает вместе с узлом запуска. Разве теперь соединитель не должен управляться работником в кластере? Нужно ли менять способ запуска коннектора или я что-то недопонимаю?