公式 MongoDB Kafka コネクタ。
コネクタのドキュメントは https://docs.mongodb.com/kafka-connector/current/ で入手できます。
コネクタは Maven Central で公開されます。
MongoDB Kafka コネクタに関する問題、質問、フィードバックについては、サポート チャネルをご覧ください。 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 が実行されている必要があります。ソースコネクタにはreplicaSetが必要であることに注意してください。
ロス・ローリー [email protected]
オリジナルのシンク コネクタの作品: Hans-Peter Grahsl : https://github.com/hpgrahsl/kafka-connect-mongodb
追加の寄稿者はここで見つけることができます。
./gradlew publishArchives
- Maven に公開します
./gradlew createConfluentArchive
- Confluent アーカイブ/github リリース zip ファイルを作成します
IntelliJ でコードを実行するには、いくつかの手動構成手順が必要です。
エラー: java: cannot find symbol. symbol: variable Versions
修正:次のいずれか:
compileBuildConfig
タスクを実行します: 例: ./gradlew compileBuildConfig
または Gradle > mongo-kafka > Tasks > other >compileBuildConfig 経由
ビルド前に実行するように、 compileBuildConfig
設定します。 Gradle > タスク > その他 >compileBuildConfig を右クリックし、「ビルド前に実行」をクリックします。
すべてのビルド アクションを Gradle に委任します: [設定] > [ビルド、実行、デプロイメント] > [ビルド ツール] > [Gradle] > [ランナー] - [IDE ビルド/実行アクションを Gradle に委任する] にチェックを入れます。
com.mongodb.kafka.connect.util.custom.credentials.CustomCredentialProvider
インターフェイスを実装すると、シンクおよびソース コネクタ用に構築された MongoClient にラップされるcom.mongodb.MongoCredential
型のオブジェクトを提供できます。次のプロパティを設定する必要があります。
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
で読み取ることができるカスタム プロパティの例です。
ここに動作するサンプルコードがあります。
public class AwsAssumeRoleCredentialProviderimplements CustomCredentialProvider { public AwsAssumeRoleCredentialProvider() {} @Override public MongoCredential getCustomCredential(Map, ?> map) { AWSCredentialsProvider プロバイダー = new DefaultAWSCredentialsProviderChain(); SupplierawsFreshCredentialSupplier = () -> { AWSSecurityTokenService stsClient = AWSSecurityTokenServiceAsyncClientBuilder.standard() .withCredentials(プロバイダー) .withRegion("us-east-1") 。建てる(); AssumeRoleRequest assignRoleRequest = new AssumeRoleRequest().withDurationSeconds(3600) .withRoleArn((String)map.get("mongodbaws.auth.mechanism.roleArn")) .withRoleSessionName("テストセッション"); AssumeRoleResult AssumeRoleResult = stsClient.assumeRole(assumeRoleRequest); 資格情報 creds = assignRoleResult.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("カスタムプロパティに設定された値が無効です"); } @Override public void init(Map, ?> map) { } }
これは、AwsAssumeRoleCredentialProvider を含む完全な jar を構築できる pom.xml です。
<モデルバージョン>4.0.0モデルバージョン> サンプル AwsAssumeRoleCredentialProvider <バージョン>1.0-スナップショットバージョン> <ビルド> <プラグイン> <プラグイン>org.apache.maven.plugins maven-shade-plugin <バージョン>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-スナップショットバージョン>/Users/jagadish.nallapaneni/mongo-kafka/build/libs/mongo-kafka-connect-1.12.1-SNAPSHOT-confluent.jar 依存関係> 依存関係> <プロパティ>17 17 UTF-8 プロパティ> プロジェクト>