Confluent Kafka подключения распределенного режима JDBC разъем
Мы успешно использовали загрузку данных mySQL - kafka с использованием автономного коннектора jdbc, но теперь столкнулись с проблемой при использовании того же самого в распределенном режиме (в качестве службы соединения kafka).
Команда используется для автономного разъема, который работает нормально -
/usr/bin/connect-standalone /etc/kafka/connect-standalone.properties /etc/kafka-connect-jdbc/source-quickstart-mysql.properties
Теперь мы остановили это и запустили службу kafka connect в распределенном режиме, как это -
systemctl status confluent-kafka-connect
● confluent-kafka-connect.service - Apache Kafka Connect - distributed
Loaded: loaded (/usr/lib/systemd/system/confluent-kafka-connect.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2018-11-14 22:52:49 CET; 41min ago
Docs: http://docs.confluent.io/
Main PID: 130178 (java)
CGroup: /system.slice/confluent-kafka-connect.service
└─130178 java -Xms256M -Xmx2G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.a...
В настоящее время на 2 узлах запущена служба подключения connect-distributed.properties
файл.
bootstrap.servers=node1IP:9092,node2IP:9092
group.id=connect-cluster
key.converter.schemas.enable=true
value.converter.schemas.enable=true
offset.storage.topic=connect-offsets
offset.storage.replication.factor=1
config.storage.topic=connect-configs
config.storage.replication.factor=1
status.storage.topic=connect-status
status.storage.replication.factor=1
offset.flush.interval.ms=10000
plugin.path=/usr/share/java
Служба подключения работает и работает, но не загружает разъемы, определенные в /etc/kafka/connect-standalone.properties
,
Что нужно сделать с сервисом, чтобы при каждом нажатии на команду systemctl start confluent-kafka-connect
, он запускает службу и запускает определенные разъемы в /etc/kafka-connect-*/
точно так же, как когда вы запускаете автономный соединитель, вручную указывая пути к файлам свойств.
Это может быть глупый вопрос, но, пожалуйста, помогите!
Спасибо!!
2 ответа
он запускает службу и запускает определенные разъемы в
/etc/kafka-connect-*/
Это не так, как работает распределенный режим... Он не знает, какие файлы свойств вы хотите загрузить, и он не сканирует эти папки1
В автономном режиме N+1
Файлы свойств, которые вы передаете, загружаются немедленно, да, но для распределенного подключения вы должны использовать HTTP-вызовы POST для API Connect REST.
Центр управления Confluent Control Center или интерфейс пользователя Landoop Connect могут предоставить удобный веб-портал для управления этими операциями.
Кстати, если у вас есть более одного брокера, я предлагаю увеличить факторы реплики для этих тем подключения в connect-distributed.properties
файл.
1. Это может быть хорошей функцией, если это так, но вы должны убедиться, что коннекторы никогда не удаляются / не останавливаются в распределенном режиме, и вы просто попадаете в несовместимое состояние с тем, что работает, и файлами, которые находятся в файловой системе.
Соединитель в распределенном режиме не может быть развернут с помощью файла свойств, как в автономном режиме. Вместо этого, используя REST API, обратитесь к https://docs.confluent.io/current/connect/managing/configuring.html.
Я могу описать, что я сделал для запуска коннектора jdbc в распределенном режиме:
Я использую на своей локальной машине, confluent
Утилита CLI для быстрой загрузки сервисов.
./confluent start
После слов я перестал кафка-коннект
./confluent stop connect
а затем я продолжаю вручную запускать настроенный connect-distributed
на двух разных портах (18083
а также 28083
)
➜ bin ./connect-distributed ../etc/kafka/connect-distributed-worker1.properties
➜ bin ./connect-distributed ../etc/kafka/connect-distributed-worker2.properties
ПРИМЕЧАНИЕ: установить plugin.path
установка полного (а не относительного) пути (например: plugin.path=/full/path/to/confluent-5.0.0/share/java)
Тогда я могу легко добавить новый разъем
curl -s -X POST -H "Content-Type: application/json" --data @/full/path/to/confluent-5.0.0/etc/kafka-connect-jdbc/source-quickstart-sqlite.json http://localhost:18083/connectors
Это должно сделать свое дело.
Как уже указывалось в cricket_007 фактор репликации как минимум 3 для брокеров Kafka в случае, если вы имеете дело с вещами, которые вы не хотите потерять в случае сбоя одного из брокеров.