본문 바로가기

Web/Kafka

[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] 카프카 커넥트

데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 어플리케이션.반복적인 파이프라인 생성작업시 매번 프로듀서 컨슈머 어플리케이션을 개발하고 배포, 운영 하는

velog.io

 

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 커넥터 생성 시 설정값 유효 여부 확인

 

반응형