본문 바로가기

Kafka

[Kafka] Apache Kafka Connect

  • System 간 메시지 전송이 필요할 때마다 중개 역할을 하는 Application을 개발할 것인가?
    • 개발 인력
    • 개발에 소요되는 시간
    • 소스 코드 유지 보수

새로운 System간 연결에서 중개 역할을 하는 Application을 개발하고 사용하는 것은 매우 많은 비용이 소모된다.

 

 

Apache Kafka Connect

  • Kafka Connect는 Apache Kafka 안팎으로 데이터를 스트리밍하기 위한 Framework
  • Kafka Connect는 다른 데이터 시스템을 Kafka와 통합하는 과정을 표준화한 Framework이다.
  • 통합을 위한 Connector 개발, 배포, 관리를 단순화 한다.
  • Kafka Connect를 사용함으로써 중개 역할을 하는 Application이 필요 없다.
  • System간 메시지 전송이 필요할 때, 이미 만들어진 Kafka Connector를 손쉽게 사용할 수 있다.

  • Source Connector
    • Data가 만들어진 DataSource에서 Data를 뽑아 Kafka로 전송하는 역할
  • Sink Connector
    • Kafka에 존재하는 데이터를 Consuming해서 해당 System으로 보내는 역할
  • 개발 인력, 시간, 유지 보수 작업이 필요 없어진다. -> 제품 구매 비용 발생으로 변환한다.
  • Connectors: Task를 관리하여 데이터 스트리밍을 조정하는 Plugin(jar), Java Class/Instance
  • Tasks: Kafka와 다른 시스템간의 데이터를 전송하는 방법의 구현체
  • Workers: Connector 및 Task를 실행하는 실행 중인 프로세스
  • Converters: Connect와 데이터를 보내거나 받는 시스템 간에 데이터를 변환하는데 사용되는 Components
  • Transforms: Connector에 의해 생성되거나 Connector로 전송되는 각 메시지를 변경하는 간단한 Components
  • Dead Letter Queue: Connect에서 Connector 오류를 처리하는 방법
  • Confluent HUB에서 다양한 Connector를 찾을 수 있다.

 

 

Connect Architecture

  • Worker Process가 Connector, Task 등을 관리한다.
  • Conncet Worker Node 상에서 Connect Worker Prodcess가 동작한다.
  • Connect Worker Process가 Connector Instance, Task Instance를 관리한다.
  • Connect Worker Process는 bootstrap server 정보를 사용하여 Kafka Cluster에 연결한다.