Der offizielle MongoDB Kafka Connector.
Die Dokumentation für den Connector ist unter https://docs.mongodb.com/kafka-connector/current/ verfügbar.
Der Connector wird auf Maven Central veröffentlicht.
Bei Problemen mit, Fragen oder Feedback zum MongoDB Kafka Connector schauen Sie bitte in unsere Supportkanäle. Bitte senden Sie keine E-Mails direkt an die Entwickler des Kafka-Konnektors, wenn Sie Probleme oder Fragen haben. Die Wahrscheinlichkeit ist höher, dass Sie in den MongoDB-Community-Foren eine Antwort erhalten.
Bitte geben Sie in Ihrer Beschreibung mindestens die genaue Version des Treibers an, den Sie verwenden. Wenn Sie Verbindungsprobleme haben, ist es oft auch sinnvoll, die Kafka-Connector-Konfiguration einzufügen. Sie sollten Ihre Anwendungsprotokolle auch auf konnektivitätsbezogene Ausnahmen überprüfen und diese ebenfalls veröffentlichen.
Denken Sie, Sie haben einen Fehler gefunden? Möchten Sie eine neue Funktion im Kafka-Treiber sehen? Bitte eröffnen Sie einen Fall in unserem Issue-Management-Tool JIRA:
Erstellen Sie ein Konto und melden Sie sich an.
Navigieren Sie zum KAFKA-Projekt.
Klicken Sie auf „Problem erstellen“ – Bitte geben Sie so viele Informationen wie möglich über die Art des Problems und wie Sie es reproduzieren können, an.
Fehlerberichte in JIRA für den Connector sind öffentlich .
Wenn Sie eine Sicherheitslücke in einem Connector oder einem anderen MongoDB-Projekt festgestellt haben, melden Sie diese bitte gemäß den Anweisungen hier.
Der MongoDB Kafka Connector folgt der semantischen Versionierung. Informationen zu Änderungen zwischen den Versionen finden Sie im Änderungsprotokoll.
Zum Erstellen und Kompilieren der Quelle ist Java 8+ erforderlich. So erstellen und testen Sie den Treiber:
$ git clone https://github.com/mongodb/mongo-kafka.git $ cd mongo-kafka $ ./gradlew check -Dorg.mongodb.test.uri=mongodb://localhost:27017
Für die Testsuite muss mongod ausgeführt werden. Beachten Sie, dass für den Quellconnector ein ReplicaSet erforderlich ist.
Ross Lawley [email protected]
Originale Sink-Connector-Arbeit von: Hans-Peter Grahsl: https://github.com/hpgrahsl/kafka-connect-mongodb
Weitere Mitwirkende finden Sie hier.
./gradlew publishArchives
– veröffentlicht in Maven
./gradlew createConfluentArchive
– erstellt die Confluent-Archiv-/Github-Release-ZIP-Datei
Um den Code in IntelliJ auszuführen, sind einige manuelle Konfigurationsschritte erforderlich:
Fehler: java: cannot find symbol. symbol: variable Versions
Korrekturen: Eines der folgenden:
Führen Sie die Aufgabe compileBuildConfig
aus: z. B.: ./gradlew compileBuildConfig
oder über Gradle > mongo-kafka > Aufgaben > „andere“ > „compileBuildConfig“.
Legen Sie compileBuildConfig
so fest, dass es vor dem Build ausgeführt wird. über Gradle > Aufgaben > Sonstiges > Rechtsklick auf „compileBuildConfig“ – klicken Sie auf „Vor Build ausführen“
Alle Build-Aktionen an Gradle delegieren: Einstellungen > Build, Ausführung, Bereitstellung > Build-Tools > Gradle > Runner – kreuzen Sie „IDE-Build-/Ausführungsaktionen an Gradle delegieren“ an.
Die Schnittstelle com.mongodb.kafka.connect.util.custom.credentials.CustomCredentialProvider
kann implementiert werden, um ein Objekt vom Typ com.mongodb.MongoCredential
bereitzustellen, das in den MongoClient eingeschlossen wird, der für den Senken- und Quell-Connector erstellt wird. Die folgenden Eigenschaften müssen festgelegt werden:
mongo.custom.auth.mechanism.enable - set to true. mongo.custom.auth.mechanism.providerClass - qualified class name of the implementation class
Zusätzliche Eigenschaften können innerhalb der Implementierungsklasse nach Bedarf festgelegt werden. Die Methoden „init“ und „validate“ der Implementierungsklasse werden aufgerufen, wenn der Connector initialisiert wird.
Bei Verwendung des MONGODB-AWS-Authentifizierungsmechanismus für Atlas kann die folgende Konfiguration angegeben werden:
"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/ "
Hier muss sample.AwsAssumeRoleCredentialProvider
im Klassenpfad verfügbar sein. mongodbaws.auth.mechanism.roleArn
ist ein Beispiel für benutzerdefinierte Eigenschaften, die von sample.AwsAssumeRoleCredentialProvider
gelesen werden können.
Hier ist Beispielcode, der funktionieren kann.
Die öffentliche Klasse AwsAssumeRoleCredentialProvider implementiert CustomCredentialProvider. LieferantawsFreshCredentialSupplier = () -> { AWSSecurityTokenService stsClient = AWSSecurityTokenServiceAsyncClientBuilder.standard() .withCredentials(Anbieter) .withRegion("us-east-1") .bauen(); AssumeRoleRequest AnnahmeRoleRequest = new AssumeRoleRequest().withDurationSeconds(3600) .withRoleArn((String)map.get("mongodbaws.auth.mechanism.roleArn")) .withRoleSessionName("Test_Session"); AssumeRoleResultassumeRoleResult = stsClient.assumeRole(assumeRoleRequest); Anmeldeinformationen creds =assumeRoleResult.getCredentials(); // Fügen Sie Ihren Code hinzu, um neue Anmeldeinformationen abzurufen. return new AwsCredential(creds.getAccessKeyId(), creds.getSecretAccessKey(), creds.getSessionToken()); }; return 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("Ungültiger Wert für customProperty festgelegt"); } } @Override public void init(Map, ?> map) { } }
Hier ist die pom.xml, die das komplette JAR mit dem AwsAssumeRoleCredentialProvider erstellen kann
4.0.0 Beispiel AwsAssumeRoleCredentialProvider 1.0-SNAPSHOT org.apache.maven.plugins maven-shade-plugin 3.5.3 Paket Schatten 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 system 1.12.1-SNAPSHOT /Users/jagadish.nallapaneni/mongo-kafka/build/libs/mongo-kafka-connect-1.12.1-SNAPSHOT-confluent.jar 17 17 UTF-8