반응형
카프카 커넥트란?
- 카프카 커넥트는 카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 애플리케이션이다.
- 카프카 커넥트는 커넥트와 커넥터로 이루어진다. 커넥트는 커넥터를 동작하도록 실행해주는 프로세스다.
- 파이프 라인을 생성할 때 프로듀서, 컨슈머 애플리케이션을 만드는 것은 좋은 방법이지만 반복적인 파이프라인 생성 작업이 있을 때는 매번 프로듀서, 컨슈머 애플리케이션을 개발하고 배포, 운영해야 하기 때문에 비효율적이다.
- 반면, 커넥트는 특정한 작업 형태를 템플릿으로 만들어 놓은 커넥터를 실행함으로써 반복 작업을 줄일 수 있다.
- 파이프라인 생성 시 자주반복되는 값들(토픽 이름, 파일 이름, 테이블 이름 등)을 파라미터로 받는 커넥터를 코드로 작성하면 이후에 파이프라인을 실행할 때는 코드를 작성할 필요가 없기 때문이다.
커넥터
커넥터는 크게 2가지로 이루어진다. 바로 소스 커넥터와 싱크 커넥터다.
싱크 커넥터
- 특정 토픽에 있는 데이터를 오라클, MySQL과 같은 특정 저장소에 저장을 한다. 컨슈머와 역할이 비슷하다.
소스 커넥터
- 데이터베이스로부터 데이터를 가져와서 토픽에 넣는 역할을 한다. 즉 프로듀서 역할을 수행한다.
커넥트
커넥터를 실행하는 것이 바로 커넥트다. 커넥트는 두 가지로 이루어진다.
단일 실행 모드 커넥트와 분산 모드 커넥트다. 실제 업무에서 활용하고 싶다면 분산 모드 커넥트를 활용해야 한다.
분산 모드 커넥트는 여러 개의 프로세스를 한 개의 클러스터로 묶어서 운영하는 방식이다.
즉 2개 이상의 커넥트가 하나의 클러스터로 묶이는 것이다.
이렇게 클러스터로 묶은 커넥트는 일부 커넥트에 장애가 발생하도 파이프라인을 자연스럽게 failover해서
나머지 실행중인 커넥트에서 데이터를 지속적으로 처리할 수 있게 도와준다.
커넥터와 커넥트의 관계
- 커넥트를 실행할 때 커넥터가 어디에 위치하는지 config 파일에 위치를 지정해야 한다.
- 커넥터 jar 패키지가 있는 디렉토리를 config 파일에 지정하는 것이다.
- 그리고 커넥트를 실행하게 되면 이 jar파일의 커넥터들을 함께 모아서 커넥터를 실행할 수 있도록 준비상태로 만든다.
- 실행중인 커넥트에서 커넥터를 실행하려면 REST API를 사용해야 한다.
- REST API를 통해 커넥터를 통한 파이프라인들이 분산해서 생기는 것이다.
반응형
댓글