Le connecteur officiel MongoDB Kafka.
La documentation du connecteur est disponible sur https://docs.mongodb.com/kafka-connector/current/
Le connecteur sera publié sur maven central.
Pour des problèmes, des questions ou des commentaires concernant le connecteur MongoDB Kafka, veuillez consulter nos canaux d'assistance. Veuillez ne pas envoyer d'e-mail directement aux développeurs du connecteur Kafka pour leur faire part de problèmes ou de questions. Vous aurez plus de chances d'obtenir une réponse sur les forums de la communauté MongoDB.
Au minimum, veuillez inclure dans votre description la version exacte du pilote que vous utilisez. Si vous rencontrez des problèmes de connectivité, il est souvent également utile de coller la configuration du connecteur Kafka. Vous devez également vérifier les journaux de vos applications pour détecter toute exception liée à la connectivité et les publier également.
Vous pensez avoir trouvé un bug ? Vous souhaitez voir une nouvelle fonctionnalité dans le pilote Kafka ? Veuillez ouvrir un dossier dans notre outil de gestion des problèmes, JIRA :
Créez un compte et connectez-vous.
Accédez au projet KAFKA.
Cliquez sur Créer un problème . Veuillez fournir autant d'informations que possible sur le type de problème et sur la manière de le reproduire.
Les rapports de bogues dans JIRA pour le connecteur sont publics .
Si vous avez identifié une vulnérabilité de sécurité dans un connecteur ou tout autre projet MongoDB, veuillez la signaler conformément aux instructions ici.
Le connecteur MongoDB Kafka suit le versioning sémantique. Consultez le journal des modifications pour plus d'informations sur les modifications entre les versions.
Java 8+ est requis pour créer et compiler la source. Pour créer et tester le pilote :
$ git clone https://github.com/mongodb/mongo-kafka.git $ cd mongo-kafka $ ./gradlew check -Dorg.mongodb.test.uri=mongodb://localhost:27017
La suite de tests nécessite que Mongod soit exécuté. Notez que le connecteur source nécessite un réplicaSet.
Ross Lawley [email protected]
Le connecteur d'évier original fonctionne par : Hans-Peter Grahsl : https://github.com/hpgrahsl/kafka-connect-mongodb
Des contributeurs supplémentaires peuvent être trouvés ici.
./gradlew publishArchives
- publie sur Maven
./gradlew createConfluentArchive
- crée le fichier zip de l'archive confluente / de la version github
Quelques étapes de configuration manuelle sont nécessaires pour exécuter le code dans IntelliJ :
Erreur : java: cannot find symbol. symbol: variable Versions
Correctifs : l'un des éléments suivants :
Exécutez la tâche compileBuildConfig
: par exemple : ./gradlew compileBuildConfig
ou via Gradle > mongo-kafka > Tasks > other > compileBuildConfig
Définissez compileBuildConfig
pour qu'il s'exécute avant la construction. via Gradle > Tâches > autre > clic droit sur compileBuildConfig - cliquez sur "Exécuter avant de construire"
Déléguez toutes les actions de build à Gradle : Paramètres > Construction, exécution, déploiement > Outils de construction > Gradle > Runner - cochez « Déléguer les actions de construction/exécution de l'IDE à Gradle »
L'interface com.mongodb.kafka.connect.util.custom.credentials.CustomCredentialProvider
peut être implémentée pour fournir un objet de type com.mongodb.MongoCredential
qui est encapsulé dans le MongoClient construit pour le connecteur récepteur et source. Les propriétés suivantes doivent être définies -
mongo.custom.auth.mechanism.enable - set to true. mongo.custom.auth.mechanism.providerClass - qualified class name of the implementation class
Propriétés supplémentaires et pouvant être définies selon les besoins dans la classe d'implémentation. Les méthodes init et validate de la classe d'implémentation sont appelées lors de l'initialisation du connecteur.
Lors de l'utilisation du mécanisme d'authentification MONGODB-AWS pour Atlas, on peut spécifier la configuration suivante :
"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/ "
Ici, le sample.AwsAssumeRoleCredentialProvider
doit être disponible sur le chemin de classe. mongodbaws.auth.mechanism.roleArn
est un exemple de propriétés personnalisées qui peuvent être lues par sample.AwsAssumeRoleCredentialProvider
.
Voici un exemple de code qui peut fonctionner.
public class AwsAssumeRoleCredentialProvider implémente CustomCredentialProvider { public AwsAssumeRoleCredentialProvider() {} @Override public MongoCredential getCustomCredential(Map, ?> map) { AWSCredentialsProvider supplier = new DefaultAWSCredentialsProviderChain(); FournisseurawsFreshCredentialSupplier = () -> { AWSSecurityTokenService stsClient = AWSSecurityTokenServiceAsyncClientBuilder.standard() .withCredentials (fournisseur) .withRegion("us-east-1") .construire(); AssumeRoleRequest assumeRoleRequest = new AssumeRoleRequest().withDurationSeconds(3600) .withRoleArn((String)map.get("mongodbaws.auth.mechanism.roleArn")) .withRoleSessionName("Test_Session"); AssumeRoleResult assumeRoleResult = stsClient.assumeRole(assumeRoleRequest); Informations d'identification creds = assumeRoleResult.getCredentials(); // Ajoutez votre code pour récupérer de nouvelles informations d'identification return new AwsCredential(creds.getAccessKeyId(), creds.getSecretAccessKey(), creds.getSessionToken()); } ; retourner 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("Valeur non valide définie pour customProperty"); } } @Override public void init(Map, ?> map) { } }
Voici le pom.xml qui peut créer le pot complet contenant le AwsAssumeRoleCredentialProvider
4.0.0 échantillon AwsAssumeRoleCredentialProvider 1.0-INSTANTANÉ org.apache.maven.plugins plugin-maven-shade 3.5.3 paquet ombre 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 système 1.12.1-INSTANTANÉ /Users/jagadish.nallapaneni/mongo-kafka/build/libs/mongo-kafka-connect-1.12.1-SNAPSHOT-confluent.jar 17 17 UTF-8