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

Другие вопросы по тегам