본문 바로가기
📨 Apache Kafka

[아파치 카프카 애플리케이션 프로그래밍 with 자바] 3-6장 카프카 커넥트

by GroovyArea 2023. 4. 20.

카프카 커넥트란?

  • 데이터 파이프라인 생성 시 반복 작업을 줄이고, 효율적인 전송을 위한 애플리케이션
  • 예로, 파이프라인 생성 시, 프로듀서 | 컨슈머 애플리케이션을 계속 만들 수 있지만, 반복 생성 작업의 경우 계속적으로 배포 및 운영이 비효율적이다. 이때 사용하면 안성 맞춤

Source Connector

  • 프로듀서 역할
  • 토픽으로 데이터를 보낼 때

Sink Connector

  • 컨슈머 역할
  • 토픽의 데이터를 받아 저장할 때

  • 예시로, Mysql 의 데이터를 보내고 저장할 때 (JDBC 도 마찬가지) 커넥터를 이용하여 파이프라인 생성 가능

특징

  • 오픈 소스 커넥터는 커넥터 jar 를 다운로드하여 편리하게 사용 가능하다.
    • gradle 의 Mysql connector 를 말하는건가?
  • 커넥터를 이용하여, 파이프라인 생성 시 converter | transform 기능 옵션 추가 가능
  • converter
    • 데이터 처리 전, 스키마 변경 가능 (JsonConverter)
  • transform
    • 데이터 처리 시, 각 메시지 단위로 간단하게 변환하기 위한 용도
    • 예를 들어 json 데이터 수정 가능

커넥터 실행 방법

  • 단일 모드 커넥트
    • 1개 프로세스 실행
    • SPOF 발생 우려
  • 분산 모드 커넥트
    • 2대 이상 서버에서 클러스터 형태 운영
    • 안전함
  • REST API 를 제공하므로 기본 포트인 8083 POST 로 확인 가능하다.

Source Connector

  • 소스 애플리케이션, 파일로부터 데이터를 가져와 토픽에 넣음
  • 오픈소스도 좋지만, 직접 개발해도 된다.
    • SourceConnector, SourceTask 구현

 

  • 이런 식으로~
  • 생성한 커넥터는 플러그인 형태로 동작하므로, jar 를 생성 후 플러그인 디렉토리에 넣어야 한다.
  • jar 파일을 디렉토리에 넣은 후 재시작 해야 한다.
  • 커넥트는 실행 시, 플러그인을 추가하기 때문이다.

 

싱크 커넥터

  • 토픽의 데이터를 Target Application, File 로 저장하는 역할
  • SinkConnecter, SinkTask 클래스 구현
  • 직접 구현한 커넥터를 빌드하고 jar 로 만들어 플러그인 형태로 추가하고 사용 가능하다.

  • 예시 그림
반응형