-
Kafka Connector 구성하기TIL 2023. 2. 27. 08:32
1. kafka Connector란?
- Kafka Connect 를 통해 Data 를 Import/Export 가능
- 코드없이 Configuration 으로 데이터를 이동
- Standalone mode, Distribution mode 지원
- RESTful API 통해 지원
- Stream 또는 Batch 형태로 데이터 전송 가능
- 커스텀 Connector 를 통한 다양한 Plugin 제공 (File, S3, Hive, Mysql, etc....)
2. 사전 준비
- Kafka 서버와 Zookeeper 서버가 가동 되어 있어야 한다.
- Kafka Connect Jdbc 파일을 구한다.
kafka connect jdbc 파일 - Kafka Connect를 설치한다 http://packages.confluent.io/archive/6.1/confluent-community-6.1.0.tar.gz
-본인 Db에 맞는 Connector .jar 파일을 구한다.
나의 경우 MySQL버전에 맞는 커넥터를 구하였다. - 구한 connector .jar 파일을 \confluent-6.1.0\share\java\kafka 폴더에 넣어준다.
- \confluent-6.1.0\etc\kafka 의 connect-distributed.properties를 수정한다.
plugin.path를 다운받은 jdbc kafka connector의 위치로 지정
3. 카프카 커넥터를 실행한다.
./bin/connect-distributed ./etc/kafka/connect-distributed.properties
4. connector를 등록한다.
Source connector 등록 Sink connector 등록 get 요청을 통해 커넥터가 정상적으로 등록된것을 확인 할 수 있다.
5. DB test
testing이란 테이블에 여러가지 값을 insert하였다 kafka connetor를 통해 테이블이 자동 생성된 모습 기존의 db와 완벽히 동기화가 된 것을 볼 수 있다
6.결론
우선, Kafka와 Kafka Connector는 독립적인 구성이다. kafka의 MQ 시스템을 극대화 하는 추가 구성의 느낌이다. kafka가 메시지 전달에 그쳤다면, Kafka Connector는 소스에 직접 관여하여, 변화를 감지하고 이를 kafka의 topic으로 전달 하게 해준다.지금 이 모든 일련의 과정이 Spring의 서버를 거치지 않고 수행 되었다. 이점은 대단한 강점이 될 것이라고 생각한다.
물론 Database의 동기화를 하는 단순한 예제 이지만, DB 뿐만이 아니라 다양한 소스에 활용 할 수 있다고 한다.
이 예제에서는 Source Connector와 Sink Connector를 한쌍으로 사용하였지만, SpringBoot와의 활용에서는 sink connector하나 만으로, db동기화도 가능할것으로 생각된다.
예를 들면 이런식의 db를 위한 mq 시스템을 구축 할 수 있을 것 이다.
참고<인프런,Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA), dongwonlee>
'TIL' 카테고리의 다른 글
Ubuntu 라우팅 꼬였을때 초기화 방법 (0) 2023.03.06 Docker-composes 사용하기 (1) 2023.03.06 특정 포트 막혀있을 때 해결 방법 (1) 2023.02.27 FeignClient vs RestTemplate (1) 2023.02.13 스키마/페이로드/필드 (1) 2023.02.12