본문 바로가기
개발일지/Web(웹)

카프카 커넥트 설치 및 설정하기(Windows)

2022. 9. 1.

카프카 커넥트에 대해서 알아보고 설치하고 설정하는 방법을 알아보자

 

카프카 커넥트란

카프카 커넥트는 아파치 카프카와 다른 Data System간에 확장가능하고 안정적인 데이터 스트리밍을 위한 도구이다.

 

원래는 카프카에 데이터를 PUB하기 위해서는 프로듀서와 컨슈머가 필요했다

 DB에 있는 데이터를 카프카로 Pub하는 프로듀서와 카프카의 데이터를 Sub하는 컨슈머가 있었다.

그런데 통합해야하는 DB가 100개가 있는 회사라면? 프로듀서도 100개가 개발 되어야 하고 컨슈머도 100개가 개발되어야 할것이다. 100개를 개발하는 비용도 많많치 않을테고 전부 DB이기 때문에 로직의 반복도 많을 것이다.

더 간편하게 효율적으로 데이터파이프라인을 구축하는 방법으로 Kafka Connect가 나온 것이다

 

Kafka Connect Concepts

Connector

커넥터는 데이터를 어디서 복사하는지와, 어디에가 붙여넣어야 하는지를 정의한다. 

카프카 커넥트는 프레임워크(다른 모듈들의 실행순서를 관장함)이고 커넥터는 그 안에서 돌아가는 플러그인이다. 우리가 커넥트 프레임워크를 실행하고 특정 플러그인을 실행시키면 우리가 원하는 행동(데이터를 어디서 복사해와서 어디다가 붙여넣는)을 할 수 있다.

 

카프카 커넥트에는 두가지 종류의 커넥터가 있다.

  • Source Connector - Source System의 데이터를 카프카 토픽으로 Publish 하는 커넥터. 즉, Producer의 역할을 하는 커넥터
  • Sink Connector - 카프카 토픽의 데이터를 Subscribe해서 Target System에 반영하는 커넥터. 즉, Consumer의 역할을 하는 커넥터

이제는 Source DB가 100개가 있어도 카프카 커넥트의 개발된 커넥터 한개만 있으면 100번 개발할 필요없이 실행만 하면 된다.

서버에서 카프카 커넥트 프레임워크를 실행시키고 그다음 특정 설정으로 Source Connector를 실행시킨다.

대신 설정파일이 100개는 필요할 것이다. 각 DB별로 특정 설정은 필요할 것이니까.. 하지만 100개의 프로듀서를 개발하는 것보다는 훨씬 비용이 적고 간편하다.

 

 

 

1. 카프카 홈페이지 다운로드가서

https://kafka.apache.org/downloads

버전에 맞게 다운로드한다.

 

나는 다운로드한 카프카 파일을

C:\Work\Kafka-practice 경로 안에 넣었다.

 

 

2. C:\Work\Kafka-practice 경로에 confluent 관련 tar 파일을 다운받고 압축을 푼다.

$ curl -O http://packages.confluent.io/archive/6.1/confluent-community-6.1.0.tar.gz
$ tar xvf confluent-community-6.1.0.tar.gz

 

 

3. jdbc 커넥터를 다운받는다.

https://docs.confluent.io/5.5.1/connect/kafka-connect-jdbc/index.html

->

confluentinc-kafka-connect-jdbc-버전.zip 파일을 다운 받고 압축을 푼다.

그리고

C:\Work\Kafka-practice 경로로 이동시킨다.

 

 

4. 커넥트를 실행시키기 전에 /c/Work/Kafka-practice/kafka 경로에서

zookeeper와 kafka를 실행시킨다.

 

주키퍼를 먼저 실행

$ ./bin/windows/zookeeper-server-start.bat ./config/zookeeper.properties

카프카 실행

$ ./bin/windows/kafka-server-start.bat ./config/server.properties

 

참고로 주키퍼랑 카프카 또는 다른 명령어 실행시킬 때

다음과 같은 오류가 날 수도 있다. 이건 단지 현재 경로의 이름이 길어서 그런거다. 그러므로 나는 경로를 단축했다.

$ ./bin/windows/zookeeper-server-start.bat ./config/zookeeper.properties
The input line is too long.
The syntax of the command is incorrect

 

 

5. /c/Work/Kafka-practice/confluent 경로에서

$ vim ./etc/kafka/connect-distributed.properties

plugin.path = C:\Work\Kafka-practice\confluentinc-kafka-connect-jdbc-버전\lib

맨 밑에 플러그인 path를 설정한다.

 

 

6. /c/Users/taekg/.m2/repository/org/mariadb/jdbc/mariadb-java-client/2.7.2

경로에서

$ cp ./mariadb-java-client-2.7.2.jar /c/Work/Kafka-practice/confluent/share/java/kafka

jar 파일을 우측경로로 복사한다. ( 그냥 윈도우 탐색기창에서 복사해도 된다. )

복사가 잘 완료 되었다.

 

 

7. 카프카 커넥트 실행하기

$ ./bin/windows/connect-distributed.bat ./etc/kafka/connect-distributed.properties

 

 

참고로 topics는 다음 명령어로 확인하면 된다.

$ ./bin/windows/kafka-topics.bat --bootstrap-server localhost:9092 --list

참고로  windows 가아니고 mac이면  모든 명령어에서

windows 경로를 빼고 .bat 파일이 아니라 .sh 파일로 입력하면된다.

ex)

./bin/kafka-topics.sh --bootstrap-server localhost:9092 --list

'개발일지 > Web(웹)' 카테고리의 다른 글

Web Server와 WAS  (0) 2022.04.13
CORS란  (0) 2022.02.13