kafka connect
카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 어플리케이션이다. 커넥트는 특정한 작업 형태를 템플릿으로 만들어놓은 커넥터(connector)를 실행함으로써 반복 작업을 줄일 수 있다.
파이프라인 생성 시 자주 반복되는 값들(토픽 이름, 파일 이름, 테이블 이름 등)을 파라미터로 받는 커넥터를 코드로 작성하면 이후에 파이프라인을 실행할 때 코드를 작성할 필요가 없다.
커넥터는 각 커넥터가 가진 고유한 설정값을 입력 받아 데이터를 처리한다.
커넥터는 프로듀서 역할을 하는 '소스 커넥터(source connector)'와 컨슈머 역할을 하는 '싱크 커넥터(sink connector)' 2가지로 나뉜다. 파일을 주고받는 것을 예로 들 때, 파일 소스 커넥터는 파일의 데이터를 카프카 토픽으로 전송하는 프로듀서 역할을 한다. 파일 싱크 커넥터는 토픽의 데이터를 파일로 저장하는 컨슈머 역할을 한다. 파일 외에도 커넥터를 통해 카프카로 데이터를 보내거나 카프카에서 데이터를 가져올 수 있다.
MySQL, S3, MongoDB 등과 같은 저장소를 대표적인 싱크 어플리케이션, 소스 어플리케이션이라 볼 수 있다.
[그림 3.6-1]
커넥트를 실행하는 방법
1) 단일 모드 커넥트 (standalone mode kafka connect)
단일 애플리케이션으로 실행되며, 커넥터를 정의하는 파일을 작성하고 해당 파일을 참조하는 단일 모드 커넥트를 실행함으로써 파이프라인을 생성할 수 있다.
1개의 프로세스만 실행되는 점이 특징이며, 단일 프로세스이기 때문에 단일 장애점(SPOF: Single Point Of Failure)이 될 수 있다. 그러므로 중요도가 낮은 파이프라인을 운영할 때 사용한다.
2) 분산 모드 커넥트 (distributed mode kafka connect)
2대 이상의 서버에서 클러스터 형태로 운영함으로써 단일 모드 커넥트 대비 안전하게 운영할 수 있다는 장점이 있다.
2개 이상의 커넥트가 클러스터로 묶이면 1개의 커넥트가 이슈 발생으로 중단되더라도 남은 1개의 커넥트가 파이프라인을 지속적으로 처리할 수 있기 때문이다. 따라서 상용환경에서 커넥트를 운영한다면 분산 모드 커넥트를 2대 이상으로 구성하고 설정하는 것이 좋다.
[그림3.6-5]
'AI & 빅데이터 > kafka' 카테고리의 다른 글
[kafka] 카프카 브로커 실행하기 (0) | 2022.08.22 |
---|---|
[kafka] 웹 페이지 이벤트 적재 파이프라인 생성 - 1) 요구 사항과 정책 및 기능 정의하기 (0) | 2022.08.22 |
[kafka] 카프카 스트림즈, 스트림즈DSL 개발하기 (0) | 2022.08.17 |
[kafka] 카프카 클라이언트 개발하기 - 어드민 API (0) | 2022.08.08 |
[kafka] 카프카 클라이언트 개발하기 - 컨슈머 API (0) | 2022.08.06 |