공식 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
- 합류 아카이브/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 및 verify 메소드가 호출됩니다.
아틀라스에 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/ "
여기서는 classpath에서 sample.AwsAssumeRoleCredentialProvider
사용할 수 있어야 합니다. mongodbaws.auth.mechanism.roleArn
은 sample.AwsAssumeRoleCredentialProvider
에서 읽을 수 있는 사용자 지정 속성의 예입니다.
다음은 작동할 수 있는 샘플 코드입니다.
공용 클래스 AwsAssumeRoleCredentialProvider는 CustomCredentialProvider를 구현합니다. { public AwsAssumeRoleCredentialProvider() {} @Override public MongoCredential getCustomCredential(Map, ?> map) { AWSCredentialsProvider 공급자 = new DefaultAWSCredentialsProviderChain(); 공급자awsFreshCredentialSupplier = () -> { AWSSecurityTokenService stsClient = AWSSecurityTokenServiceAsyncClientBuilder.standard() .withCredentials(공급자) .withRegion("us-east-1") .짓다(); AssumeRoleRequest 가정RoleRequest = 새로운 AssumeRoleRequest().withDurationSeconds(3600) .withRoleArn((String)map.get("mongodbaws.auth.mechanism.roleArn")) .withRoleSessionName("테스트_세션"); AssumeRoleResult 가정RoleResult = stsClient.assumeRole(assumeRoleRequest); 자격 증명 creds = 가정RoleResult.getCredentials(); // 새 자격 증명을 가져오는 코드를 추가합니다. return new AwsCredential(creds.getAccessKeyId(), creds.getSecretAccessKey(), creds.getSessionToken()); }; MongoCredential.createAwsCredential(null, null) 반환 .withMechanismProperty(MongoCredential.AWS_CREDENTIAL_PROVIDER_KEY, awsFreshCredentialSupplier); } @Override public void verify(Map, ?> map) { String roleArn = (String) map.get("mongodbaws.auth.mechanism.roleArn"); if (StringUtils.isNullOrEmpty(roleArn)) { throw new RuntimeException("customProperty에 잘못된 값이 설정되었습니다."); } } @Override public void init(Map, ?> map) { } }
다음은 AwsAssumeRoleCredentialProvider를 포함하는 전체 jar을 빌드할 수 있는 pom.xml입니다.
<프로젝트 xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/ /maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0 샘플 AwsAssumeRoleCredentialProvider 1.0-스냅샷 <빌드> <플러그인> <플러그인>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-스냅샷/Users/jagadish.nallapaneni/mongo-kafka/build/libs/mongo-kafka-connect-1.12.1-SNAPSHOT-confluent.jar 의존성> 종속성> <속성>17 17 UTF-8 속성> 프로젝트>