카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 애플리케이션이다, 즉 프로듀서, 컨슈머가 반복된 작업을 할 경우 매번 개발하고 배포, 운영해야 하기 때문에 비효율적일 수 있는 부분을 커넥트를 통해 특정한 형태의 템플릿으로 만들어놓은 커넥터를 실행함으로써 반복 작업을 줄일 수 있다.
즉, Kafka Connect는 더 간편하게 효율적으로 데이터파이프라인을 구축하는 방법이며, MicroService에서 직접 DB에 대한 커넥션과 처리작업을 하지 않고 관련 작업은 kafka에 일임하는 역할을 한다. 그렇기 때문에 비용, 시간이 단축될 수 있다.
데이터 중심 파이프라인
유연성과 확장성
재사용성과 기능 확장
장애 및 복구
단일 모드 커넥트
분산 모드 커넥트
커넥터는 데이터를 어디서(soruce) 복사하는지와, 어디에다(sink) 붙여넣어야 하는지를 정의한다.
kafka connect : 프레임워크
kafka connector : connec 안에 들어가는 플러그인의 한 종류
Source Connector - Source System의 데이터를 카프카 토픽으로 Publish 하는 커넥터. 즉, Producer의 역할을 하는 커넥터
Sink Connector - 카프카 토픽의 데이터를 Subscribe해서 Target System에 반영하는 커넥터. 즉, Consumer의 역할을 하는 커넥터
소스 애플리케이션 또는 소스 파일로부터 데이터를 가져와 토픽으로 넣는 역할을 한다. 많은 오픈 소스 커넥터가 존재하지만 라이선스 문제나 로직을 커스텀해서 구현해야 할 경우 SourceConnector, SourceTask 클래스를 사용하여 직접 만들 수 있다.
gradle에 dependency 추가
// https://mvnrepository.com/artifact/org.apache.kafka/connect-api
implementation group: 'org.apache.kafka', name: 'connect-api', version: '2.5.0'
토픽의 데이터를 타깃 애플리케이션 또는 타깃 파일로 저장하는 역할을 한다. 커넥트 라이브러리에서 제공하는 SinkConnector와 SinkTask 클래스를 사용하면 직접 싱크 커넥터를 구현할 수 있다.
참고 자료
Kafka Connect 란?