카프카 커넥트란?
- 데이터 파이프라인 생성 시 반복 작업을 줄이고, 효율적인 전송을 위한 애플리케이션
- 예로, 파이프라인 생성 시, 프로듀서 | 컨슈머 애플리케이션을 계속 만들 수 있지만, 반복 생성 작업의 경우 계속적으로 배포 및 운영이 비효율적이다. 이때 사용하면 안성 맞춤
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 로 만들어 플러그인 형태로 추가하고 사용 가능하다.
- 예시 그림
반응형
'📨 Apache Kafka' 카테고리의 다른 글
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 4-2장 카프카 프로듀서 (0) | 2023.05.07 |
---|---|
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 4-1장 토픽과 파티션 (0) | 2023.05.05 |
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 3-5장 카프카 스트림즈 (0) | 2023.04.13 |
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 3.4 장 카프카 클라이언트 (0) | 2023.04.09 |
[아파치 카프카 애플리케이션 프로그래밍 with 자바] 3-2, 3장 토픽과 파티션, 레코드 (0) | 2023.03.27 |