* 카프카 커넥트
카프카 오픈소스에 포함된 툴 중 하나로 데이터 파이프라인 생성 시 반복 작업을 줄이고 효율적인 전송을 이루기 위한 애플리케이션이다.
반복적인 파이프라인 생서 작업이 있을 시 매번 프로듀서, 컨슈머 애플리케이션을 개발하고 배포, 운영하기 때문에 비효율적이기에
특정한 작업 형태를 템플릿으로 만들어놓은 커넥터를 사용하면 효율적으로 사용할 수 있다.
# 프로듀서 역할을 하는 소스 커넥터(source connector)
# 컨슈머 역할을 하는 싱크 커넥터(sink connector)
# 태스크
사용자가 커넥트에 커넥터 생성 명령을 내리면 커넥트는 내부에 커넥터와 태스크를 생성한다.
커넥터는 태스크를 관리하고, 태스크는 커넥터에 종속되는 개념으로 실적적인 데이터 처리를 한다.
이에 데이터 처리를 정상적으로 하는지 확인하기 위해 각 태스크의 상태를 확인해야 한다.
# 컨버터
컨버터는 데이터를 처리하기 전에 스키마를 변경하도록 도와준다.
JsonConverter, StringConverter, ByteArrayConverter를 지원하고 필요하다면 커스텀 컨버터를 작성하여 사용할 수 있다.
* 커넥트 실행 방법
커넥트 실행 방법은 크게 두 가지가 있다.
# 단일 모드 커넥트
- 단일 모드 커넥트는 단일 애플리케이션으로 실행된다.
- 커넥터를 정의하는 파일을 작성하고 해당 파일을 참조하는 단일 모드 커넥트를 실행함으로써 파이프라인을 생성할 수 있다.
- 1개 프로세스만 실행되는 것이 특징이다.
- 단일 프로세스로 실행되기 때문에 고가용성 구성이 되지 않아 단일 장애점이 될 수 잇다.
- 중요도가 낮은 파이프라인을 운영할 때 사용한다.
# 분산모드 커넥트
- 분산 모드 커넥트는 2대 이상의 서버에서 클러스터 형태로 운영한다.
- 2개 이상의 커넥트가 클러스터로 묶이면 1개의 커넥트가 중단되더라도 남은 1개의 커넥트가 파이프라인을 지속적으로 처리한다.
- 데이터 처리량의 변화에도 유연하게 대응할 수 있다.
- 상용환경에서는 분산 모드 커넥트를 2대 이상 구성하고 설정하는 것이 좋다.
# 카프카 커넥트 REST API
REST API를 사용하면 현재 실행 중인 커넥트의 커넥터 플로그인 종류, 태스크 상태, 커넥터 상태 등을 조회할 수 있다.
커넥트는 8083 포트로 호출하며, HTTP 메서드 기반 API를 제공한다.
아래는 커넥트에서 지원하는 REST API 종류를 정리한 표이다.
요청 메서드 | 호출 경로 | 설명 |
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/{태스크아이디}/status | 실행 중인 커넥터의 태스크 상태 확인 |
POST | /connectors/{커넥터 이름}/tasks/{태스크아이디}/restart | 실행 중인 커넥터의 태스크 재시작 요청 |
GET | /connectors/{커넥터 이름}/topics | 커넥터별 연동된 토픽 정보 확인 |
GET | /connector-plugins/ | 커넥트에 존재하는 커넥터 플로그인 확인 |
PUT | /connector-plugins/{커넥터 플러그인 이름}/config/validate | 커넥터 생성 시 설정값 유효 여부 확인 |
커넥트 세팅 및 구현에 대한 정리는 다음 포스팅에서 하겠다.
'Programming > Apache Kafka' 카테고리의 다른 글
아파치 카프카 실습 (Apache Kafka) / 토픽과 파티션 - 상세 개념 (적정 파티션 개수, 메시지 키 사용 여부, 토픽 정리 정책, ISR) (0) | 2023.01.30 |
---|---|
아파치 카프카 실습 (Apache Kafka) / 카프카 커넥트 단일, 분산 모드 커넥트 (0) | 2023.01.30 |
아파치 카프카 실습 (Apache Kafka) / 프로세서 API 활용하기 (0) | 2023.01.25 |
아파치 카프카 실습 (Apache Kafka) / GlobalKTable과 KStream 조인하기 (0) | 2023.01.25 |
아파치 카프카 실습 (Apache Kafka) / KTable과 KStream 조인하기 (0) | 2023.01.18 |