본문 바로가기
실시간 데이터 수집

Confluent Architecture

by Sunyoung95 2024. 1. 28.

Confluent 란?

실시간 데이터 파이프라인 및 스티리밍 애플리케이션을 구축하는 데 사용되는 분산 이벤트 스트리밍 플랫폼.
실시간 분석, 데이터 수집, 이벤트 기반 아키텍쳐와 같은 사례에 적합하다.

Confluent vs. Kafka

  • Apache kafka 개발진들이 기업용으로 확장한 소프트웨어가 Confluent
  Kafka Confluent
개발지원언어 JAVA Java, Python, C, C++, Go, NET
관리 및 모니터링 GUI X O
Kubernetes 설치여부 X O
Ansible Playbook X O
Auto Data Balancing X O
Pre-Built Connector X O
KsqlDB X O

 

Kafka를 활용한 ETL Architecture

용어 정리

클러스터 외부

  • Connect : Connector를 동작하게 하는 프로세서 (서버)
  • Connector : Data를 어디에서(source) 어디로(sink) 복사할지 관리, 데이터를 처리하는 코드가 담긴 jar 패키지 
    • converter 설정을 통해 커넥터와 브로커 사이에 주고 받는 메시지를 어떻게 변환하여 저장할 것인지 설정 
  • Source Connector : Data Source의 데이터를 카프카 토픽에 보내는 역할을 하는 커넥터 (Producer)
  • Sink Connector : 카프카 토픽에 담긴 데이터를 특정 Data Source로 보내는 역할을 하는 커넥터 (Consumer)
  • Schema Registry : Data의 스키마 등록 및 조회, 버전관리, 호환성 체크등의 기능을 제공 
  • Ksql DB : 실시간 스트리밍 데이터를 처리, 내부 토픽을 Sub하여 분석하거나 Sub한 토픽을 정제하여 다시 토픽으로 Pub 가능  
  • Transforms : 메시지를 간단하게 수정할 수 있게 하는 tool (다만 다소 복잡한 변환을 수행해야 할 경우에는 KsqlDB나 Kafka Streams 사용을 권함.)
    • 하나의 데이터를 받아 데이터를 수정해서 내보낸다.
    • 여러개의 Transforms을 연결(chain)해서 하나의 connector에서 설정이 가능 

클러스터 내부

  • Broker : 각 kafka 클러스터의 노드(서버, 부트스트랩 서버),  n개의 topic으로 구성된다
    • 부트스트랩 서버 : kafka client (producer, consumer 등)이 브로커와 연결하여 브로커 내부의 자원에 접근할 때 원하는 자원의 위치 (어떤 브로커에 해당 토픽이 저장되어 있는지)를 알기위한 메타데이터 공유.
  • Topic : kafka의 가장 기본적인 조직단위, 이벤트 스트림 구성 및 저장
    • 새로운 이벤트 메시지가 topic에 기록되면 해당 메시지가 로그 끝에 추가된다.
    • 이벤트가 기록된 후에는 변경 불가능
    • consumer가 각 topic을 읽으며 offset을 기록하여 순차적으로 log를 읽는다.
    • 해당 topic을 구독하는 consumer는 0~n 개가 될 수 있다.
    • 이벤트를 전송한 후에도 일정 기간동안 삭제되지 않는다.

 

 

 

참고

https://docs.confluent.io/kafka/introduction.html

 

Introduction to Apache Kafka | Confluent Documentation

In addition to brokers and client producers and consumers, there are other key components of Kafka that you should be familiar with: Kafka Connect Kafka Connect is a component of Kafka that provides data integration between databases, key-value stores, sea

docs.confluent.io

https://www.confluent.io/ko-kr/apache-kafka-vs-confluent/

 

Apache Kafka vs. Confluent: 특징 및 기능 비교 | KR

Kafka and Confluent have numerous differences. Here's a side-by-side comparison of Confluent vs Kafka: features, connectors, clients, performance, scalability, and more.

www.confluent.io

https://velog.io/@holicme7/Apache-Kafka-Kafka-Connect-%EB%9E%80

 

[Apache Kafka] Kafka Connect 란?

Kafka Connect는 데이터베이스, 키-값 저장소, 검색 인덱스 및 파일 시스템 간의 간단한 데이터 통합을 위한 중앙 집중식 데이터 허브 역할을 하는 Apache Kafka의 무료 오픈소스 구성요소이다.Kafka Connec

velog.io

https://giljae.com/solution-architecture-patterns/vendor-neutral/Event-Driven-Architecture-Kafka-Pattern.html

 

Event driven architecture with Kafka

Reusable, vendor-neutral, industry-specific, vendor-specific solution architecture patterns for enterprise

giljae.com

https://towardsdatascience.com/enabling-a-powerful-search-capability-building-and-deploying-a-real-time-stream-processing-etl-a27ecb0ab0ae

 

Building and Deploying a Real-Time Stream Processing ETL Engine with Kafka and ksqlDB

From Design Decisions to everything behind the scenes, for enabling a Powerful Search Capability

towardsdatascience.com

 

https://techblog.yogiyo.co.kr/confluent-schema-registry-%EB%8F%84%EC%9E%85%EA%B8%B0-54d112b9b53f

 

Confluent Schema Registry 도입기!

Schema Registry 도입을 위한 PoC 여정을 소개합니다!

techblog.yogiyo.co.kr

 

댓글