본문으로 건너뛰기

카프카 커넥트

카프카 커넥트란?

카프카 커넥트는 Apache Kafka®와 다른 데이터 시스템 간에 데이터를 안정적으로 스트리밍하는 도구에요. 이를 통해 실시간으로 대규모 데이터 세트를 Kafka로 이동하거나 Kafka에서 다른 시스템으로 이동 시킬 수 있어요. 카프카 커넥트커넥터 들을 사용하여 데이터 파이프라인을 쉽게 구성할 수 있게 도와줘요.

Felice 에서는 이렇게 다양한 데이터 소스와 대상 시스템을 연결할 수 있도록 커넥트 클러스터 모니터링과 편리한 커넥터 관리 인터페이스를 제공하고 있어요.

카프카 커넥트의 주요 개념

커넥터 Connectors

커넥터 는 카프카 커넥트 에코시스템의 가장 중요한 구성 요소 중 하나로, 데이터 소스 및 싱크와 카프카 브로커 간의 데이터를 쉽게 통합하고 전송할 수 있게 해주는 도구에요.

커넥터 는 두 가지 주요 유형으로 나뉘어져요.

  • [소스 커넥터]
    외부 시스템으로부터 데이터를 가져와서 카프카 토픽에 기록하는 커넥터에요. 데이터베이스, 파일 시스템, HTTP 엔드포인트 등 다양한 소스에서 데이터를 가져오는 역할을 수행해요. 예를 들어, JDBC 소스 커넥터 를 사용하여 관계형 데이터베이스로부터 데이터를 가져와 카프카 토픽에 쓸 수 있어요.

  • [싱크 커넥터]
    카프카 토픽에 있는 데이터를 가져와 외부 시스템으로 전송하는 커넥터에요. 데이터베이스, 파일 시스템, 검색 인덱스 등에 데이터를 전달하는 역할을 수행해요. 예를 들어, JDBC 싱크 커넥터 를 사용하여 카프카 토픽의 데이터를 관계형 데이터베이스에 삽입할 수 있어요.

태스크 Tasks

태스크 는 개별 데이터 전송 작업 단위를 의미해요. 각 커넥터 는 하나 이상의 태스크 로 구성될 수 있으며, 각 태스크 는 병렬로 실행되어 데이터 전송을 효율적으로 처리할 수 있어요. 태스크 수는 각 커넥터 설정에서 값을 변경할 수 있으며, 이를 통해 데이터 전송의 병렬성을 조정하여 시스템의 성능과 확장성을 최적화하는데 도움을 줄 수 있어요.

워커 Workers

워커 는 카프카 커넥트의 실행 환경을 제공하는 노드로 커넥터와 태스크를 실제로 실행하는 역할을 해요. 워커 는 단독으로 실행될 수도 있고, 클러스터링되어 분산 환경에서 실행될 수도 있어요.

  • 단일 노드 모드
    단일 워커로 커넥트를 실행하는 모드입니다. 간단한 테스트나 작은 규모의 작업에 적합해요.
  • 분산 모드
    여러 워커가 클러스터를 구성하여 커넥터와 태스크를 분산 처리하는 모드에요. 대규모 데이터 전송 작업에 적합하며, 워커 간의 장애 조치(failover)와 부하 분산(load balancing)을 지원해요.

워커의 주요 역할

  • 태스크 실행
    워커는 커넥터가 정의한 태스크를 실행해요.
  • 태스크 할당 및 재할당
    분산 모드에서는 각 워커가 실행할 태스크를 자동으로 할당받고, 워커 장애 시 다른 워커로 태스크를 재할당해요..
  • 구성 관리
    워커는 커넥터와 태스크의 구성을 관리합니다. REST API를 통해 구성을 업데이트하고 모니터링할 수 있어요. 데이터 변환 및 처리: 워커는 데이터 전송 중 필요한 변환 및 처리 로직을 적용해요.

DLQ (Dead Letter Queue)

DLQ(Dead Letter Queue) 는 카프카 커넥트에서 데이터 전송 중 발생하는 처리 불가능한 메시지나 오류가 있는 메시지를 별도로 저장하는 특수한 카프카 토픽으로, 문제 발생 시 데이터를 손실하지 않고 나중에 분석 및 재처리할 수 있도록 도와줘요.