본문 바로가기
[개발] Info/용어

Kafka Connector

by Devsong26 2023. 11. 30.

Apache Kafka Connector는 Kafka Connect API의 일부로, 외부 시스템과 Kafka 클러스터 간의 데이터를 신뢰성 있고 확장 가능한 방법으로 전송하는 데 사용됩니다. Kafka Connector는 크게 두 가지 유형으로 나뉩니다: Source Connector와 Sink Connector.

 

Kafka Source Connector

  • 목적
    • Source Connector는 다양한 데이터 소스(예: 데이터베이스, 파일 시스템, 메시징 시스템 등)에서 데이터를 추출하여 Kafka 토픽으로 전송합니다.
  • 사용 사례
    • 데이터베이스 변경사항을 Kafka로 스트리밍하는 경우, 로그 파일을 실시간으로 Kafka에 전송하는 경우 등.

 

 

Kafka Sink Connector

  • 목적
    • Sink Connector는 Kafka 토픽에서 데이터를 소비하여 외부 시스템(예: 데이터베이스, 검색 엔진, 데이터 웨어하우스 등)으로 전송합니다.
  • 사용 사례
    • Kafka 토픽의 데이터를 데이터베이스에 저장하는 경우, 분석을 위해 데이터 웨어하우스로 전송하는 경우 등.

 

 

Kafka Connect의 주요 특징

  • 통합 및 간소화
    • 다양한 소스와 싱크 시스템 간의 데이터 통합과 전송을 간소화합니다.
  • 확장성
    • 대규모 데이터 및 높은 처리량을 지원하기 위해 확장 가능한 아키텍처를 제공합니다.
  • 신뢰성
    • 데이터 전송 중 장애가 발생했을 때, 자동으로 복구하고 데이터 손실을 최소화합니다.
  • 설정 및 관리 용이성
    • JSON 또는 REST API를 통해 쉽게 설정하고 관리할 수 있습니다.
  • 플러그인 아키텍처
    • 커뮤니티에서 제공하는 다양한 커넥터를 통해 다양한 시스템과의 통합을 지원합니다.

 


구현 예

 

Kafka Connect를 사용하여 데이터베이스에서 데이터를 추출하고 Kafka 토픽으로 전송하는 Source Connector의 설정 예시입니다:

{
  "name": "my-source-connector",
  "config": {
    "connector.class": "org.apache.kafka.connect.jdbc.JdbcSourceConnector",
    "connection.url": "jdbc:mysql://localhost:3306/mydb",
    "topic.prefix": "mydb-",
    ...
  }
}


Kafka Connect를 사용하여 Kafka 토픽의 데이터를 데이터베이스에 저장하는 Sink Connector의 설정 예시입니다:

{
  "name": "my-sink-connector",
  "config": {
    "connector.class": "org.apache.kafka.connect.jdbc.JdbcSinkConnector",
    "connection.url": "jdbc:mysql://localhost:3306/mydb",
    "auto.create": "true",
    ...
  }
}



이러한 Kafka Connector를 활용하여 시스템 간의 데이터 흐름을 효율적으로 관리하고 실시간 데이터 통합 및 분석을 수행할 수 있습니다.

'[개발] Info > 용어' 카테고리의 다른 글

Nexus Repository  (0) 2023.12.08
분산 락(Distributed Lock)  (1) 2023.12.06
Debezium  (0) 2023.11.30
CQRS(Command Query Responsibility Segregation)  (0) 2023.11.30
CDC(Change Data Capture)  (0) 2023.11.29