Confluent Kafka подключения распределенного режима JDBC разъем - PullRequest
0 голосов
/ 15 ноября 2018

Мы успешно использовали загрузку данных 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 ]

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

Я могу описать, что я сделал для запуска соединителя jdbc в распределенном режиме:

Я использую на своей локальной машине confluent Утилита CLI для более быстрой загрузки служб.

./confluent start

После слов я остановил kafka-connect

./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 для кафкиброкеры на случай, если вы имеете дело с вещами, которые вы не хотите потерять в случае выхода из строя одного из брокеров.

0 голосов
/ 15 ноября 2018

запускает службу и запускает определенные разъемы в /etc/kafka-connect-*/

Это не так, как работает распределенный режим ... Он не знает, какие файлы свойств вы хотите загрузить, и не сканирует эти папки 1

В автономном режиме предоставленные вами файлы свойств N+1 загружаются немедленно, да, но для распределенного подключения вы должны использовать HTTP POST-вызовы для Connect REST API .


Центр управления Confluent Control Center или пользовательский интерфейс Connect Landoop может предоставить удобный веб-портал для управления этими операциями.

Кстати, если у вас более одного брокера, я предлагаю увеличить коэффициенты реплики для этих тем подключения в файле connect-distributed.properties.

1. Это может быть хорошей функцией, если это так, но тогда вы должны убедиться, что коннекторы никогда не удаляются / не останавливаются в распределенном режиме, и вы просто попадаете в несогласованное состояние с тем, что работает, и файлами, которые находятся в файловой системе.

...