상세 컨텐츠

본문 제목

Kafka Connect란? - 카프카 커넥트? 커넥터? Connector?

서랍/Kafka Connect

by 박복만 2021. 11. 30. 16:22

본문

이 글은 먼저 아파치 카프카가 무엇인지를 알아야한다.

https://bagbokman.tistory.com/5

 

Apache Kafka - 카프카란?

카프카란? Event Streaming 플랫폼이다. 분산 처리를 한다. 오픈 소스이다. 그러면 Event Streaming이 뭔데? 데이터베이스, 센서, 모바일기기, 어플리케이션 등과 같은 곳에서 발생하는 데이터를 Event Stream

bagbokman.tistory.com

아직 조금 허접한 글이지만 카프카가 데이터 허브의 역할을 한다는 것을 알고 있으면 된다.

그리고 카프카에 데이터를 Publish 하기 위해서는 Producer가 필요하고 카프카에서 데이터를 Subscribe하려면 Consumer가 필요하다는 것을 알고 있으면 된다. 한가지 더! 비슷한 Data System이 많아지면 많아질수록 Producer와 Consumer를 개발하는데에는 비용도 계속 들고 반복작업이 많아질 수 있다는 것을 이해하면 좋을것같다. 


Kafka Connect

카프카 커넥트는 아파치 카프카와 다른 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개의 프로듀서를 개발하는 것보다는 훨씬 비용이 적고 간편하다.

 


카프카 커넥트와 카프카 커넥터의 차이점, 그리고 카프카 커넥트가 왜 나왔고 어떻게 사용할지에 대해서 설명을 해보았습니다. 다음번에는 오늘 소개하지 않은 카프카 커넥트의 컨셉에 대해서 설명을 할지 카프카 커넥트를 개발하는 법에 대해서 설명을 할지 한번 고민해보고 돌아오겠습니다.

 

제가 설명한 내용들은 틀릴 수도 있는 내용이기때문에 지적 환영합니다.. 읽어주셔서 감사합니다.

댓글 영역