Официальный коннектор MongoDB Kafka.
Документация для соединителя доступна по адресу https://docs.mongodb.com/kafka-connector/current/.
Коннектор будет опубликован на maven Central.
Если у вас возникли проблемы, вопросы или отзывы о MongoDB Kafka Connector, обратитесь в наши каналы поддержки. Пожалуйста, не пишите напрямую разработчикам коннекторов Kafka с проблемами или вопросами — вы, скорее всего, получите ответ на форумах сообщества MongoDB.
Как минимум, укажите в описании точную версию драйвера, который вы используете. Если у вас возникли проблемы с подключением, часто бывает полезно вставить конфигурацию соединителя Kafka. Вам также следует проверить журналы приложений на наличие исключений, связанных с подключением, и опубликовать их.
Думаете, вы нашли ошибку? Хотите увидеть новую функцию в драйвере Kafka? Пожалуйста, откройте обращение в нашем инструменте управления проблемами JIRA:
Создайте учетную запись и войдите.
Перейдите к проекту KAFKA.
Нажмите «Создать проблему ». Предоставьте как можно больше информации о типе проблемы и о том, как ее воспроизвести.
Отчеты об ошибках в JIRA для соединителя являются общедоступными .
Если вы обнаружили уязвимость безопасности в коннекторе или любом другом проекте MongoDB, сообщите об этом, следуя инструкциям здесь.
Коннектор MongoDB Kafka поддерживает семантическое управление версиями. Информацию об изменениях между выпусками см. в журнале изменений.
Для сборки и компиляции исходного кода требуется Java 8+. Чтобы собрать и протестировать драйвер:
$ git clone https://github.com/mongodb/mongo-kafka.git $ cd mongo-kafka $ ./gradlew check -Dorg.mongodb.test.uri=mongodb://localhost:27017
Для набора тестов требуется, чтобы mongod был запущен. Обратите внимание: для исходного соединителя требуется набор реплик.
Росс Лоули [email protected]
Оригинальный разъем для раковины, работа: Ханс-Питер Грасл: https://github.com/hpgrahsl/kafka-connect-mongodb
Дополнительных участников можно найти здесь.
./gradlew publishArchives
— публикует в Maven
./gradlew createConfluentArchive
— создает zip-файл слитного архива/выпуска github.
Для запуска кода в IntelliJ требуется несколько шагов ручной настройки:
Ошибка: java: cannot find symbol. symbol: variable Versions
Исправления: Любое из следующего:
Запустите задачу compileBuildConfig
: например: ./gradlew compileBuildConfig
или через Gradle > mongo-kafka > Tasks > другое > compileBuildConfig.
Установите compileBuildConfig
для выполнения перед сборкой. через Gradle > Задачи > другое > щелкните правой кнопкой мыши compileBuildConfig - нажмите "Выполнить перед сборкой"
Делегируйте все действия сборки Gradle: Настройки > Сборка, выполнение, развертывание > Инструменты сборки > Gradle > Runner - установите флажок "Делегировать действия сборки/запуска IDE в gradle"
Интерфейс com.mongodb.kafka.connect.util.custom.credentials.CustomCredentialProvider
можно реализовать для предоставления объекта типа com.mongodb.MongoCredential
, который обертывается в MongoClient, созданный для соединителя приемника и источника. Необходимо установить следующие свойства:
mongo.custom.auth.mechanism.enable - set to true. mongo.custom.auth.mechanism.providerClass - qualified class name of the implementation class
Дополнительные свойства и могут быть установлены по мере необходимости в классе реализации. Методы init и validate класса реализации вызываются при инициализации соединителя.
При использовании механизма аутентификации MONGODB-AWS для атласа можно указать следующую конфигурацию:
"connection.uri": "mongodb+srv:///?authMechanism=MONGODB-AWS" "mongo.custom.auth.mechanism.enable": true, "mongo.custom.auth.mechanism.providerClass": "sample.AwsAssumeRoleCredentialProvider" "mongodbaws.auth.mechanism.roleArn": "arn:aws:iam:: :role/ "
Здесь sample.AwsAssumeRoleCredentialProvider
должен быть доступен в пути к классам. mongodbaws.auth.mechanism.roleArn
— это пример пользовательских свойств, которые можно прочитать с помощью sample.AwsAssumeRoleCredentialProvider
.
Вот пример кода, который может работать.
общественный класс AwsAssumeRoleCredentialProvider реализует CustomCredentialProvider {public AwsAssumeRoleCredentialProvider () {} @Override public MongoCredential getCustomCredential (Map , ?> карта) { AWSCredentialsProvider поставщик = новый DefaultAWSCredentialsProviderChain (); ПоставщикawsFreshCredentialSupplier = () -> { AWSSecurityTokenService stsClient = AWSSecurityTokenServiceAsyncClientBuilder.standard() .withCredentials(поставщик) .withRegion("нас-восток-1") .строить(); AssumeRoleRequest ПредположимRoleRequest = новый AssumeRoleRequest().withDurationSeconds(3600) .withRoleArn((String)map.get("mongodbaws.auth.mechanism.roleArn")) .withRoleSessionName("Test_Session"); AssumeRoleResult предполагаетRoleResult = stsClient.assumeRole(assumeRoleRequest); Учетные данные creds = submitRoleResult.getCredentials(); // Добавьте свой код для получения новых учетных данных return new AwsCredential(creds.getAccessKeyId(), creds.getSecretAccessKey(), creds.getSessionToken()); }; вернуть MongoCredential.createAwsCredential(null, null) .withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier); } @Override public void validate(Map, ?> map) { String roleArn = (String) map.get("mongodbaws.auth.mechanism.roleArn"); if (StringUtils.isNullOrEmpty(roleArn)) { throw new RuntimeException("Неверное значение установлено для customProperty"); } } @Override public void init(Map, ?> карта) { } }
Вот pom.xml, который может создать полную банку, содержащую AwsAssumeRoleCredentialProvider.
4.0.0 пример AwsAssumeRoleCredentialProvider <версия>1.0-SNAPSHOT <сборка> <плагины> <плагин>org.apache.maven.plugins плагин maven-shade <версия>3.5.3версия> <конфигурация> конфигурация> <казни> <исполнение>пакет <цели>тень цели> выполнение> исполнения> плагин> плагины> сборка> <зависимости> <зависимость>org.mongodb mongodb-driver-sync <версия>5.1.0версия> зависимость> <зависимость>com.amazonaws aws-java-sdk <версия>1.12.723версия> зависимость> <зависимость>org.slf4j slf4j-jdk14 <версия>1.7.28версия> зависимость> <зависимость>kafka-connect kafka-connect система <версия>1.12.1-SNAPSHOT/Users/jagadish.nallapaneni/mongo-kafka/build/libs/mongo-kafka-connect-1.12.1-SNAPSHOT-confluent.jar зависимость> зависимости> <свойства>17 17 UTF-8 свойства> проект>