카프카 커넥트(Kafka Connect) 간단 테스트하기 - 파일 싱크 커넥터(file sink connector) & 파일 소스 커넥터 사용(file source connector)

카프카 커넥트(Kafka Connect)를 사용해 파일 소스 커넥터(file source connector)로 파일을 읽어 카프카 토픽에 저장하고 파일 싱크 커넥터(file sink connector)로 받아 다른 파일에 저장하는 실습을 하겠습니다. A 파일의 내용이 카프카를 거쳐 B 파일에 저장됩니다. A 파일에 데이터가 추가되면 실시간으로 B 파일에 반영됩니다.

관련 이전 포스트: 

  • Zookeeper와 Kafka를 기동합니다. 
  • 테스트에 사용할 파일을 만듭니다.
  • bin 폴더의 connect-standalone.sh 을 확인합니다.
카프카 커넥트 standalone 모드
  • config 폴더의 connect-standalone.properties, connect-file-sink.properties, connect-file-source.properties 을 확인합니다.
카프카 커넥트와 사용할 3개의 파라미터
* connect-standalone.properties는 카프카 커넥트 프로세스 설정 파일입니다. connect-file-source.properties는 소스 커넥터(source connector) 설정, connect-file-sink.properties는 싱크 커넥터(sink connector) 설정 파일입니다.  소스 커넥터는 input 파일에서 데이터를 읽어 카프카로 보내고, 싱크 커넥터는 카프카에서 데이터를 읽어 output 파일로 보냅니다. 
  • connect-file-source 프로퍼티에서 디폴트 설정을 확인합니다. text.txt 파일을 읽어서 connect-test란 카프카 토픽에 저장합니다.
카프카 파일 소스 커넥터 설정 확인

  • connect-file-sink.properties에서 디폴트 설정을 확인합니다.  카프카의 connect-test란 토픽에서 메세지를 가져와 test.sink.txt에 저장합니다.
카프카 파일 싱크 커넥트 설정 확인

  • 두 개의 커넥터를 standalone 모드에서 시작합니다. bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties  config/connect-file-sink.properties
2개의 파일 커넥트로 카프카 커넥트 실행
  • 새 창에서 Kafka Connect가 포트 8083에서 동작하는지 확인합니다. 
카프카 커넥트 디폴트 포트 8083
  • test.sink.txt가 생성되었는지 확인합니다.
  • test.txt에 데이터를 넣으면 실시간으로 consumer가 카프카 connect-test토픽에서 메세지를 받는 것을 보겠습니다. bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic connect-test을 실행합니다. 
  • 새 창을 열고 test.txt 파일에 새로운 내용을 추가하고 컨수머가 실시간으로 처리하는 것을 확인합니다.  

카프카 커넥트로 생성한 토픽에서 데이터 받기
  • 마지막으로 text.sink.txt에도 잘 반영이 됐는지 확인합니다.

Comments