[Kafka] Kafka Connect란?
Kafka Connect라는 것에 대해 처음 들어보고 살짝 공부한 뒤 느낀 점을 정리한 글입니다. 정확하지 않은 정보일 수 있습니다.
Kafka Connect란?
Kafka Connect는 카프카로 작업을 해야하는 경우 데이터 파이프라인 생성 및 반복적인 작업을 줄여주는 역할을 하는 도구입니다.
간단하게 요약하자면 반복적인 작업을 템플릿화하는 도구라고 보입니다.
기존에는 만약 여러 애플리케이션에서 비슷한 Kafka 파이프라인을 구성한다면 어떻게 되는지 보겠습니다.
기존의 방식이라면 바로 위의 그림처럼 각각 거의 동일한 프로듀서를 여러 번 만들고 그림에 나와 있지는 않지만 컨슈머도 동일하게 많은 작업을 요구하게 됩니다.
이는 애플리케이션이 많아질수록 더 부담되는 작업입니다. 이를 해결하기 위해 Kafka Connect가 나왔습니다.
위의 그림을 보면 원래 Kafka Producer가 있어야 할 곳에 Source Connector, Kafka Consumer는 Sink Connector가 있습니다.
- Source Connector : 기존의 Producer와 같은 역할, 카프카 Topic으로 Publish 하는 역할
- Sink Connector : 기존의 Consumer와 같은 역할, 카프카 Topic의 데이터를 Consume 하는 역할
또한 여기서 특징은 각 애플리케이션이 동일한 Source Connector를 사용하고 있다는 겁니다.
즉, 동일한 로직의 Producer를 각 애플리케이션마다 만들지 않고 어느 공간 혹은 서버에 작성해놓은 Kafka Connect 설정을 이용해서 동일한 역할을 쉽게 작성하는 방식입니다.
Kafka Connect 설정
Kafka Connect에 대한 설정에 대한 설명은 우선은 저보다 더 자세히 정리해놓은 타 블로그를 통해서 공유하려고 합니다. 추후에 Kafka Connect를 테스트해볼 환경을 구성한 후 테스트를 해보며 추가적으로 정리하겠습니다.
Kafka Connect에 대한 블로그
https://velog.io/@ehdrms2034/Kafka-%EC%B9%B4%ED%94%84%EC%B9%B4-%EC%BB%A4%EB%84%A5%ED%8A%B8
Kafka Connect API 명령어
Kafka Connect는 현재 실행 중인 커넥트의 환경에 대해 조회하거나 커넥터 생성 등을 요청할 API를 제공하고 있습니다.
- 기본적으로 Connect는 8083 포트를 사용하고 있습니다.
요청 메소드 | 경로 | 설명 |
GET | / | 실행 중인 커넥트 정보 확인 |
GET | /connectors | 실행 중인 커넥트 이름 확인 |
POST | /connectors | 커넥트 생성 요청 |
GET | /connectors/{커넥트 이름} | 실행 중인 커넥터 정보 확인 |
GET | /connectors/{커넥트 이름}/config | 실행 중인 커넥터의 설정값 확인 |
PUT | /connectors/{커넥트 이름}/config | 실행 중인 커넥터 설정값 변경 요청 |
GET | /connectors/{커넥트 이름}/status | 실행 중인 커넥터 상태 확인 |
POST | /connectors/{커넥트 이름}/restart | 실행 중인 커넥터 재시작 요청 |
PUT | /connectors/{커넥트 이름}/pause | 커넥터 일시 중지 요청 |
PUT | /connectors/{커넥트 이름}/resume | 커넥터 재개 요청 |
DELETE | /connectors/{커넥트 이름} | 실행 중인 커넥터 종료 |
GET | /connectors/{커넥트 이름}/tasks | 실행 중인 커넥터의 테스트 정보 확인 |
GET | /connectors/{커넥트 이름}/tasks/{Task 아이디}/status | 실행 중인 커넥트의 테스크 상태 확인 |
POST | /connectors/{커넥트 이름}/tasks/{Task 아이디}/restart | 실행 중인 커넥트의 테스크 재시작 요청 |
GET | /connectors/{커넥트 이름}/topics | 커넥터별 연동된 토픽 정보 확인 |
GET | /connectors-plugins | 커넥트에 존재하는 커넥터 플러그인 확인 |
PUT | /connectors-plugins/{커넥트 플러그인 이름}/config/validate | 커넥터 생성 시 설정값 유효 여부 확인 |