기타

Kafka 간단한 개념 정리 (2)

naksnaks 2023. 12. 22.
반응형
  • Kafka 핵심요소
    • Broker : 카프카 애플리케이션 서버 단위
    • Topic : 데이터 분리 단위. 다수 파티션 보유
    • Partition : 레코드를 담고 있음. 컨슈머 요청 시 레코드 전달
    • Offset : 각 레코드당 파티션에 할당된 고유 번호
    • Consumer : 레코드를 polling하는 애플리케이션
      • Consumer group : 다수 컨슈머 묶음
      • Consumer offset : 특정 컨슈머가 가져간 레코드의 번호
    • Producer : 레코드를 브로커로 전송하는 애플리케이션
    • Replication : 파티션 복제 기능
      • ISR : 리더 + 팔로워 파티션의 sync가 된 묶음
    • Rack-awareness : Server rack 이슈에 대응
  • Kafka Client
  • Kafka Streams
    • 데이터를 변환(Transformation)하기 위한 목적으로 사용하는 API
    • 스트림 프로세싱을 지원하기 위한 다양한 기능을 제공
      • Stateful 또는 Stateless와 같이 상태기반 스트림 처리 가능
      • Stream api와 DSL(Domain Specific Language)를 동시 지원
      • Exactly-once 처리, 고가용성 특징
      • Kafka security(acl, sasl 등) 완벽 지원
      • 스트림 처리를 위한 별도 클러스터(ex. yarn 등) 불필요
  • Kafka Connect
    • 많은 경우 Kafka client로 Kafka로 데이터를 넣는 코드를 작성할 때도 있지만, Kafka connect를 통해 data를 Import/Export 할 수 있음.
    • 코드 없이 configuration으로 데이터를 이동시키는 것이 목적
      • Standalone mode, distribution mode 지원
      • REST api interface를 통해 제어
      • Stream 또는 Batch 형태로 데이터 전송 가능
      • 커스텀 connector을 통한 다양한 plugin 제공(File, S3, Hive, Mysql etc…)
  • Kafka Mirror maker
    • 특정 카프카 클러스터에서 다른 카프카 클러스터로 Topic 및 Record를 복제하는 Standalone tool
    • 2019년 11월, 기존 MirrorMaker를 개선한 MirrorMaker2.0 release.
    • 클러스터간 토픽에 대한 모든 것을 복제하는 것이 목적
      • 신규 토픽, 파티션 감지기능 및 토픽 설정 자동 Sync기능
      • 양방향 클러스터 토픽 복제
      • 미러링 모니터링을 위한 다양한 metric(latency, count 등) 제공
  • 그 외 Kafka 생태계를 지탱하는 app들
    • confluent/ksqlDB : sql구문을 통한 stream data processing 지원
    • confluent/Schema Registry : avro기반의 스키마 저장소
    • confluent/REST Proxy : REST api 를 통한 consumer/producer
    • linkedin/Kafka burrow : consumer lag 수집 및 분석
    • yahoo/CMAK : 카프카 클러스터 매니저
    • uber/uReplicator : 카프카 클러스터 간 토픽 복제(전달)
    • Spark stream : 다양한 소스(카프카 포함)로 부터 실시간 데이터 처리
      ⚠️일부 오픈소스의 경우 라이센스 이슈 확인 필요

 

 

참고한 영상

제가 kafka에 대해 공부하면서 참고했던 영상입니다.

https://youtube.com/watch?v=VJKZvOASvUA

반응형

'기타' 카테고리의 다른 글

Kafka 간단한 개념 정리 (1)  (1) 2023.12.21
프로젝트 구조 readme 작성 방법  (0) 2023.11.09

댓글

💲 추천 글