01.ApacheKafkaConnect

System간 메시지 전송

문제점

  • 개발 인력

  • 소요되는 시간

  • 소스 코드 유지 보수

Kafka Connector를 사용한 System 간 메시지 전송

  • Application 개발 불필요

  • System간 메시지 전송이 필요할 때, 이미 잘 만들어진 Kafka Connector를 손쉽게 사용

  • 위의 언급한 문제점에서 자유로워진다. 단, 제품 구매 비용 발생

Kafka Connect? Connector?

Kafka Connect는 Apache Kafka 안팎으로 데이터를 스트리밍하기 위한 Framework

  • Kafka Connect는 다른 데이터 시스템을 Kafka와 통합하는 과정을 표준화한 Framework 통합을 위한 Connector 개발, 배포, 관리를 단순화

  • Connectors - Task를 관리하여 데이터 스트리밍을 조정하는 Plugin(jar), Java Class/Instance

  • Tasks - Kafka와 다른 시스템간의 데이터를전송하는 방법의 구현체(Java Class/Instance)

  • Workers - Connector 및 Task를 실행하는 실행 중인 프로세스(Process)

  • Converters - Connect와 데이터를 보내거나 받는 시스템 간에 데이터를 변환하는데 사용되는 Components(Java Class)

  • Transforms - Connector에 의해 생성되거나 Connector로 전송되는 각 메시지를 변경하는 간단한 Components(Java Class)

  • Dead Letter Queue - Connect에서 Connector 오류를 처리하는 방법

컨버터는 데이터 처리를 하기 전에 스키마를 변경하도록 돕는다. JsonConverter, StringConverter, ByteArrayConverter를 기본으로 제공하고 이외는 jar파일을 추가해서 사용할 수 있다.

트랜스폼은 데이터 처리 시 각 메시지 단위로 데이터를 간단하게 변환하기 위한 용도로 사용된다. ex) Json 데이터 처리 시 특정 키를 삭제하거나 추가할 수 있다.

Cofluent HUB

Connect Architecture

Worker 프로세스가 Connector, Task 등을 관리

  • Connect Worker Node 상에서 Connect Worker Process가 동작

  • Connect Worker Process가 Connector Instance, Task Instance를 관리

Standalone vs Distributed Workers

Single Process vs Multi Process(Scalability & Automatic Fault Tolerance)

Multi Distributed Connect Clusters

group.id로 Cluster간 구분

Last updated