Kafka-MongoDB Debezium Connector: распределенный режим
Я работаю над разъемом источника debezium mongodb. Могу ли я запустить коннектор на локальном компьютере в распределенном режиме, указав адрес сервера начальной загрузки kafka в качестве удаленного компьютера (развернутого в Kubernetes) и удаленного URL-адреса MongoDB?
Я попробовал это и вижу, что коннектор запускается успешно, ошибок нет, только несколько предупреждений, но данные от mongodb не поступают.
Используя команду ниже для запуска коннектора
./bin/connect-distributed ./etc/schema-registry/connect-avro-distributed.properties ./etc/kafka/connect-mongodb-source.properties
Если нет, то как еще я могу этого добиться, я не хочу устанавливать локальную kafka или mondoDB, как предлагает большая часть руководства. Я хочу использовать для этого наши тестовые серверы.
Следуйте инструкциям ниже для этого : https://medium.com/tech-that-works/cloud-kafka-connector-for-mongodb-source-8b525b779772
Ниже приведены более подробные сведения о проблеме. Коннектор работает нормально, я вижу строки ниже в конце журнала коннектора.
INFO [Worker clientId=connect-1, groupId=connect-cluster] Starting connectors and tasks using config offset -1 (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1000)
] INFO [Worker clientId=connect-1, groupId=connect-cluster] Finished starting connectors and tasks (org.apache.kafka.connect.runtime.distributed.DistributedHerder:1021)
Я также определил конфигурацию MongoDB в /etc/kafka/connect-mongodb-source.properties следующим образом
name=mongodb-source-connector
connector.class=io.debezium.connector.mongodb.MongoDbConnector
mongodb.hosts=/remoteserveraddress:27017
mongodb.name=mongo_conn
initial.sync.max.threads=1
tasks.max=1
Но данные не передаются между MongoDB и Kafka. Я также опубликовал ответственный вопрос для этого коннектора Kafka-MongoDB Debezium: распределенный режим
Любые указатели прилагаются
1 ответ
connect-distributed
принимает только один файл свойств.
Вы должны использовать REST API для настройки Kafka Connect в распределенном режиме.
https://docs.confluent.io/current/connect/references/restapi.html
Примечание: по умолчанию потребитель будет читать последние данные не по теме, а не существующие.
Вы бы добавили это в connect-avro-distributed.properties
починить это
consumer.auto.offset.reset=earliest