Kafka Connect

    Kafka Connect: Incremental Cooperative Rebalancing

    Kafka Connect: Incremental Cooperative Rebalancing

    서론Kafka Connect Worker는 컨테이너 기반(e.g Kubernetes Pod)이나 물리적/가상 머신(e.g EC2)에서 일반적으로 사용된다.이러한 환경에서는 Rolling Restart, Scale-Up/Down, Scale-In/Out 등과 같이 Worker Group의 상태 변경으로 인해 리밸런싱이 자주 발생할 수 있다. Kafka 2.3.0 이전에는 리밸런싱 시 모든 Task와 Connector가 모두 Revoke된 후 다시 Assign되는 방식(Eager Rebalance)이 적용됐다.이는 리밸런싱 과정에서 전체 작업이 중단되는 “Stop-The-World” 현상을 야기했다. 이를 해결하기 위해 **KIP-415: Incremental Cooperative Rebalancing이 제..

    Strimzi, Kafka Connect를 이용한 데이터 통합 파이프라인 환경 구성하기

    Strimzi, Kafka Connect를 이용한 데이터 통합 파이프라인 환경 구성하기

    서론현재 회사에서 진행중인 메인 프로젝트는 실시간으로 게임으로부터 들어오는 데이터를 통합하고 이를 가공해 제 3자 서비스에게 가공된 데이터를 제공해주는 파이프라인을 구축하는 것입니다. 팀에서는 대용량 데이터를 실시간으로 스트리밍 처리하기 위해 Kafka를 사용 중입니다.따라서, 실시간으로 외부 저장소에 적재되는 게임 데이터를 Kafka로 통합하고, 가공된 데이터를 외부 저장소로 적재하는 기술 도입이 필요했습니다. Kafka Connect는 Kafka의 구성 요소로서 분산 데이터 처리 플랫폼에서 스트리밍 데이터 통합 프레임워크입니다.다양한 외부 저장소(Source/SInk)로부터 Kafka Connector를 통해 데이터를 가져오고, 적재할 수 있는 장점이 있습니다. 일반적으로 Kafka Connect는 ..

    Kafka Connect: Custom TimestmapExtractor

    Kafka Connect: Custom TimestmapExtractor

    개요Confluent S3 Sink Connector는 Custom Partitioner, Custom TimestampExtractor 구현을 통해 요구사항에 맞게 S3 버킷 경로 구성이 가능하다.TimeBasedPartitioner 사용 시 Custom TimestampExtractor를 이용해 Record에서 Tiemstamp를 추출해서 버킷 경로를 구성해보자.TimestampExtractor사용 용도Kafka Record 내에서 특정 기준으로 Timestamp를 추출하는 기능을 제공하는 인터페이스Confluent에서 공식적으로 제공하는 TimestampExtractor 구현체는 다음과 같다.RecordFieldTimestampExtractor: Record내 타임스탬프를 사용하는 필드에서 추출Re..