이 문서에서는Google Cloud의 Kafka Connect 커넥터에 대해 간략하게 설명합니다. 각 커넥터 유형을 사용하여 데이터 스트림을 관리하고 통합하는 시기를 알아봅니다.
이러한 커넥터는 Kafka Connect 프레임워크를 사용하여 Apache Kafka를 다른 애플리케이션과 통합합니다. Kafka 클러스터와 애플리케이션 간에 데이터를 수집하고 복제합니다. 사용 가능한 커넥터 유형은 다음과 같습니다.
MirrorMaker 2.0 커넥터
소스 커넥터
체크포인트 커넥터
하트비트 커넥터
BigQuery 싱크 커넥터
Cloud Storage 싱크 커넥터
Pub/Sub 소스 커넥터
Pub/Sub 싱크 커넥터
MirrorMaker 2.0 커넥터는 Kafka 클러스터 간 데이터 복제 및 재해 복구를 위해 특별히 설계되었습니다. 이를 통해 한 Kafka 클러스터에서 다른 클러스터로 데이터를 미러링하여 고가용성과 내결함성을 지원할 수 있습니다.
MirrorMaker 2.0 커넥터는 Apache Kafka용 관리형 서비스 클러스터와 다른 Apache Kafka용 관리형 서비스 클러스터 또는 자체 관리 Kafka 클러스터 간에 연결을 설정할 수 있습니다.
다른 싱크 및 소스 커넥터는 Kafka를 다양한Google Cloud 서비스와 통합하는 데 사용됩니다. 이러한 커넥터를 사용하면 Apache Kafka용 관리형 서비스 클러스터와 BigQuery, Cloud Storage, Pub/Sub과 같은 Google Cloud 서비스 간에 데이터를 전송할 수 있습니다.
시작하기 전에
커넥터를 살펴보고 만들기 전에 다음 사항을 이해하고 기본 요건을 충족해야 합니다.
Kafka Connect 및 Connect 클러스터에 대한 실무 지식 커넥터를 배포하려면 먼저 Connect 클러스터를 만들어야 합니다.
싱크 및 소스 커넥터의 경우 구성하는 커넥터의 종류에 따라 BigQuery 테이블, Cloud Storage 버킷 또는 Pub/Sub 주제 및 구독을 이해해야 합니다.
커넥터는 이러한 형식을 사용하여 구성되므로 YAML 또는 JSON 구성 파일에 익숙해야 합니다.
MirrorMaker 2.0을 사용해야 하는 경우
다음 시나리오에서는 MirrorMaker 2.0 커넥터를 사용하세요.
데이터 이전: Kafka 워크로드를 새로운 Apache Kafka용 관리형 서비스 클러스터로 이동합니다.
재해 복구: 장애 발생 시 비즈니스 연속성을 보장하기 위해 백업 클러스터를 만듭니다.
데이터 집계: 분석 목적으로 여러 Kafka 클러스터의 데이터를 중앙 Managed Service for Apache Kafka 클러스터로 통합합니다.
MirrorMaker 2.0 주요 기능
- 주제, 데이터, 구성, 오프셋이 있는 소비자 그룹, ACL 등 필요한 모든 구성요소를 복제합니다.
- 타겟 클러스터에서 동일한 파티셔닝 스키마를 유지하므로 애플리케이션의 전환이 간소화됩니다.
- 새 주제와 파티션을 자동으로 감지하고 복제하여 수동 구성을 최소화합니다.
- 복제 프로세스의 상태와 성능을 추적할 수 있는 엔드 투 엔드 복제 지연 시간과 같은 필수 측정항목을 제공합니다.
- 데이터 볼륨이 많은 경우에도 안정적인 작동을 보장하며 증가하는 워크로드를 처리하기 위해 수평으로 확장할 수 있습니다.
- 오프셋 동기화, 체크포인트, 하트비트에 내부 주제를 사용합니다. 이러한 주제에는 고가용성과 내결함성을 보장하기 위해
offset.syncs.topic.replication.factor와 같은 구성 가능한 복제 인수가 있습니다.
MirrorMaker 2.0 소스 커넥터 사용
MirrorMaker 2.0 소스 커넥터는 한 Kafka 클러스터 (소스)에서 다른 Kafka 클러스터 (타겟)로 주제 및 데이터를 복제합니다.
| 소스 | 대상 |
|---|---|
| Managed Service for Apache Kafka 클러스터 | Managed Service for Apache Kafka 클러스터 |
| Managed Service for Apache Kafka 클러스터 | 외부 또는 자체 관리형 Kafka 클러스터 |
| 외부 또는 자체 관리형 Kafka 클러스터 | Managed Service for Apache Kafka 클러스터 |
MirrorMaker 2.0 소스 커넥터는 다음 마이그레이션 시나리오를 지원합니다.
외부 또는 자체 관리형 Kafka 클러스터에서 Apache Kafka용 관리형 서비스 클러스터로 데이터를 복제하거나 마이그레이션
Apache Kafka용 관리형 서비스 클러스터에서 외부 또는 자체 관리형 Kafka 클러스터로 데이터를 복제하거나 마이그레이션합니다.
재해 복구 및 고가용성 요구사항을 충족하기 위해 리전 간에 Kafka 데이터를 복제합니다.
MirrorMaker 2.0 체크포인트 커넥터 사용
MirrorMaker 2.0 체크포인트 커넥터 사용은 선택사항입니다. 마지막으로 성공적으로 소비된 메시지를 나타내는 소비자 오프셋을 복사합니다. 이 프로세스를 통해 타겟 클러스터의 소비자가 소스 클러스터와 동일한 지점에서 처리를 재개할 수 있습니다.
이 커넥터는 MirrorMaker 2.0 소스 커넥터가 작동하는 데 필요하지 않습니다. 이 커넥터는 소스 클러스터에서 타겟 클러스터로 전환하는 동안 최소한의 다운타임으로 ConsumerGroup 상태를 동기화해야 하는 경우에만 필요합니다. 소스 데이터의 사본만 필요한 경우 이 커넥터는 필요하지 않습니다.
다음 사용 사례에 MirrorMaker 2.0 체크포인트 커넥터를 사용합니다.
클러스터 간에 일관된 소비자 상태를 유지하고 원활한 장애 조치를 지원하는 재해 복구
중요한 시나리오에서 소비자 진행 상황을 유지합니다.
MirrorMaker 2.0 하트비트 커넥터 사용
MirrorMaker 2.0 하트비트 커넥터는 소스 Kafka 클러스터에서 주기적인 하트비트 메시지를 생성하는 선택적 구성요소입니다. 커넥터는 이러한 메시지를 전용 주제에 작성하며, 일반적으로 heartbeats이라는 이름이 지정됩니다.
MirrorMaker 2.0 소스 커넥터를 구성하여 heartbeats 주제를 대상 클러스터에 복제할 수 있습니다. 타겟 클러스터에서 복제된 이 주제를 관찰하면 주제 복제 흐름의 상태와 성능을 모니터링할 수 있습니다. 이렇게 하면 다른 데이터가 생성되거나 복제되지 않는 경우에도 클러스터 간 연결과 데이터 흐름을 확인할 수 있습니다.
하트비트 커넥터를 단독으로 배포해도 복제 상태가 자동으로 모니터링되지는 않습니다. 모니터링에 사용하려면 heartbeats 주제를 복제한 다음 타겟 클러스터에서 주제의 존재 여부와 적시성을 관찰하거나 이러한 하트비트를 사용하는 모니터링 도구를 사용해야 합니다.
MirrorMaker 2.0 소스 커넥터가 작동하는 데 하트비트 커넥터가 필요하지는 않습니다. 다음 사용 사례에는 MirrorMaker 2.0 하트비트 커넥터를 사용하세요.
MirrorMaker 2 복제의 상태를 모니터링합니다.
생성된 하트비트와 사용 가능한 측정항목을 사용하여 Cloud Monitoring에서 알림을 구성하여 복제 또는 하트비트가 중지될 때 알림을 받습니다.
싱크 커넥터 사용
싱크 커넥터는 Kafka 주제에서 다른 시스템으로 데이터를 내보냅니다.
BigQuery 싱크 커넥터 사용
BigQuery 싱크 커넥터는 Kafka 주제에서 BigQuery 테이블로 데이터를 스트리밍합니다.
다음 사용 사례에는 BigQuery 싱크 커넥터를 사용하세요.
분석 및 보고를 위해 스트리밍 데이터를 BigQuery에 로드하는 데이터 웨어하우징
실시간 대시보드를 지원하는 BigQuery 테이블을 채웁니다.
Cloud Storage 싱크 커넥터 사용
Cloud Storage 싱크 커넥터는 Kafka 주제에서 Cloud Storage 버킷으로 데이터를 스트리밍합니다.
다음 사용 사례에는 Cloud Storage 싱크 커넥터를 사용하세요.
데이터 레이크 수집: 장기 보관 및 일괄 처리를 위해 데이터 레이크에 Kafka 데이터를 저장합니다.
규제 요건을 충족하기 위해 데이터를 보관처리합니다.
Pub/Sub 싱크 커넥터 사용
Pub/Sub 싱크 커넥터는 Kafka 주제에서 Pub/Sub 주제로 메시지를 스트리밍합니다.
다음 사용 사례에는 Pub/Sub 싱크 커넥터를 사용하세요.
Kafka에서 Pub/Sub에서 사용하는 다른 서비스나 애플리케이션으로 데이터를 전송하는 서비스 통합 Google Cloud
처리된 데이터를 기반으로 실시간 알림 또는 작업 트리거
소스 커넥터 사용
소스 커넥터는 다른 시스템에서 Kafka 주제로 데이터를 가져옵니다.
Pub/Sub 소스 커넥터 사용
Pub/Sub 소스 커넥터는 Pub/Sub 구독에서 Kafka 주제로 메시지를 스트리밍합니다.
다음 사용 사례에는 Pub/Sub 소스 커넥터를 사용하세요.
클라우드 서비스 또는 기타 애플리케이션에서 데이터를 가져와 스트림 처리를 위해 Pub/Sub에서 Kafka로 게시하는 실시간 데이터 수집
이벤트 기반 아키텍처로, Pub/Sub에 게시된 이벤트를 기반으로 Kafka 기반 처리를 트리거합니다.
작업 재시작 정책
실패가 발생할 때의 동작을 결정하는 커넥터의 작업 재시작 정책을 설정할 수 있습니다. 커넥터는 다음 정책을 지원합니다.
다시 시작하지 않음 커넥터는 실패한 작업을 다시 시작하지 않습니다. 이 정책은 기본 동작입니다. 디버깅하거나 오류 후 수동 개입이 필요한 상황에서 유용합니다.
지수 백오프로 다시 시작합니다. 커넥터는 지연 (백오프 기간이라고 함) 후 실패한 작업을 다시 시작합니다. 지연 시간은 후속 실패마다 기하급수적으로 증가합니다. 이 정책은 대부분의 프로덕션 워크로드에 권장됩니다.
지수 백오프 정책을 사용하는 경우 최소 및 최대 백오프 값도 설정하세요. 최소 백오프는 60초보다 커야 하고 최대 백오프는 7, 200초보다 작아야 합니다.
변환 및 술어
Kafka Connect는 기본 Kafka 변환 및 프레디케이트를 지원합니다.
커넥터 구성의 일부로 구성을 지정합니다. 예를 들어 DoNotProcess 헤더 키가 포함된 메시지를 무시하도록 싱크 커넥터를 구성하려면 커넥터에 다음 구성을 추가합니다.
transforms=dropMessage
transforms.dropMessage.type=org.apache.kafka.connect.transforms.Filter
transforms.dropMessage.predicate=hasKey
predicates=hasKey
predicates.hasKey.type=org.apache.kafka.connect.transforms.predicates.HasHeaderKey
predicates.hasKey.name=DoNotProcess
이 구성은 다음을 수행합니다.
org.apache.kafka.connect.transforms.predicates.HasHeaderKey유형의hasKey라는 술어를 구성합니다. 이 술어는 키가DoNotProcess인 헤더가 포함된 모든 메시지와 일치합니다.org.apache.kafka.connect.transforms.Filter유형의dropMessage이라는 변환을 구성합니다. 이 변환은 구성된 조건자와 일치하는 모든 메시지를 삭제합니다.변환을 술어
hasKey에 연결합니다. 이렇게 하면DoNotProcess헤더 키가 있는 메시지만 변환에 의해 삭제됩니다.
자세한 내용은 변환 및 프레디케이트에 관한 Kafka 문서를 참고하세요.
다음 단계
BigQuery 싱크 커넥터 만들기
Pub/Sub 소스 커넥터 만들기
Pub/Sub 싱크 커넥터 만들기