Kafka Connect

1 minute read

Kafka Connect란 무엇인가

카프카 커넥트란 카프카 오픈 소스에 포함되어있는 툴중 하나로 데이터 파이프라인 작업을 효율화해주는 카프카 오픈 소스를 구성하는 기둥중 하나이다. 카프카 커넥트를 이용해 유명한 데이터 소스.싱크 부분을 프로듀서, 컨슈머로 만들 필요 없이 구현할 수 있다. 카프카 커넥터는 토픽, 파일, 테이블 등등의 설정값들을 파라미터로 받아서 손 쉽게 프로듀서, 컨슈머를 만들 수 있게 해줍니다.

이러한 카프카 커넥트는 커넥트 내부에 태스크들을 생성해 관리한다. 태스크는 커넥터를 실행하는 주체로 실제로 데이터를 처리한다. 또한 커넥터에는 컨버터 기능이 있는데 이러한 컨버터는 데이터의 형태를 바꿔주는 기능을 제공한다.

Kafka Connect 단일 모드 커넥트

커넥트를 실행하는 방법중 하나인 단일 모드 커넥트는 1개의 프로세스로만 실행이 된다. 1개의 프로세스에서 커넥터가 작동하기 때문에 Single Point Of Failure(SPOF)가 된다는 문제점이 발생한다.

실제 구현할 때는 offset을 커밋하는 주기를 설정해주고 플러그인 형태로 추가할 커넥터의 디렉토리 주소를 입력해 주면 됩니다. 해당 디렉토리에 커넥터jar파일이 존재하면 됩니다. 또한 해당 카프카 바이너리가 설치되어있는 디렉토리에서 config 파일을 설정해서 커넥터를 지정할 수 있다.

Kafka Connect 분산모드 커넥트

분산 모드 카프카 커넥트는 단일 모드 커넥트의 단점인 SPOF를 해결하기 위한 해결책이다. 2개 이상의 커넥트가 클러스터로 묶이면서 한개의 커넥트가 문제가 생겨도 지속적인 파이프라인 처리가 가능하다. 나머지 설정들은 단일 모드 커넥트와 동일하다.

Kafka Connect - Source Connect

소스 커넥터는 데이터를 가져와 토픽으로 넣는 역할을 한다. 이러한 소스 커넥터는 Confulent와 같은 기업에서 무료/유료로 공개하는 것을 써도 되지만 개인이 직접 개발할 수 있다. 이를 위해서 카프카 커넥트 라이브러리에서 제공하는 SourceConnector와 SourceTask 클래스를 활용해서 구현할 수 있다.

Kafka Connect - Sink Connect

싱크 커넥터는 토픽의 데이터를 연결된 목적지에(DB,어플리케이션 등등) 저장하는 역할을 한다. Sink Connector 또한 SinkConnector와 SinkTask클래스를 활용해 구현하거나 외부에서 커넥터를 플러그인으로 구매할 수 있다.



출처:

아파치카프카 애플리케이션 프로그래밍 with 자바

카프카, 데이터 플랫폼의 최강자

Tags:

Categories:

Updated:

Leave a comment