Kafka/Connect

Kafka Connector 개요

재심 2022. 10. 29. 20:21

[Kafka Connect]

카프카는 프로듀서와 컨슈머 클라이언트를 통해 메시지 파이프라인을 구성할 수 있다. 하지만 파이프라인 구성을 위해 매번 프로듀서와 컨슈머를 개발하는 것은 쉽지 않다.

 

=> 카프카와 외부 시스템 간의 파이프라인 구성을 더욱 쉽고 간편하게 해주는 도구. 

 

  • Source Connector : 외부 시스템 -> 커넥트 -> 카프카
  • Sink Connector : 카프카 -> 커넥트 -> 외부 시스템

특징

  • 다양한 Connector들을 지원한다. But 기능적으로 완벽한 것 같지는 않다. 
  • Connector 구축 및 관리를 위한 REST API를 지원한다. 
  • Connector별로 라이센스가 다르다. (ex: Elasticsearch Sink Connector는 Confluent 유료 라이센스)
  • Connector 인스턴스와 함께 Schema-Registry를 함께 구축해야 한다.
  • Confluent Control-Center와 같은 제품군과 엮이지 않는다면 모니터링이 힘들 수 있는 측면이 있는 듯하다.  
  • ConfigProvider를 통한 hashcorp vault 적용가능 

구성예제 (JDBC Source Connector)

{
  "name": "JdbcSourceConnector",
  "config": {
    ...
    "name": "JdbcSourceConnector",
    "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
    "key.converter": "org.apache.kafka.connect.json.JsonConverter",
    "value.converter": "org.apache.kafka.connect.json.JsonConverter",
    "connection.url": "jdbc:sqlserver://localhost:3950",
    "connection.user": "admin",
    "connection.password": "***********************************",
    ...
    "mode": "timestamp+incrementing",
    "incrementing.column.name": "SEQ",
    "timestamp.column.name": "CHANGE_DATE",
    "validate.non.null": "false",
    "query": "SELECT A FROM TABLE",
    "query.suffix": "",
    "poll.interval.ms": "5000",
    "topic.prefix": "jaeshim-test-topic"
    ...
  }
}