그녀의 일

Apach Kafka 란? | producer, consumer, topic, partition 용어 설명

뻔짓 2023. 3. 16. 19:09
728x90
반응형

Apach Kafka 란

  • 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산형 데이터 스트리밍 플랫폼
  • 장점 1 : 복제기능으로 서버 이슈에도 데이터 손실없이 복구가능
  • 장점 2 : 처리량이 높아 빅데이터 처리에 유용 (broker, partition)

 


용어 설명

 

producer : 데이터를 카프카에 보내는 역할

  • 대용량의 클릭 로그를 실시간으로 카프카 topic에 생성 (저장)
  • broker로 데이터 전송 할 때 전송 성공 여부 알 수 있음

consumer : 토픽 내 파티션에 저장된 데이터를 가져가는 역할 (=polling)

  • partition offset 위치 기록 : 중단 및 손실되어도 기록된 위치 이후로 작업하면 됨
  • consumer group을 통해 병렬 처리
    • consumer group내 consumer의 수는 partition 개수보다 적거나 같아야 함 (더이상 할당될 파티션-컨슈머 조합이 없으므로)
    • 서로 다른 consumer 그룹이 동일한 토픽의 데이터를 가져갈 수 있음 (컨슈머 그룹 : elastic, hadoop 등)

topic : 데이터 목적에 따라 분류. DB 테이블, 폴더 ex. click_log, tx_log

partition : 토픽 내 구성요소

  • 오래된 순서로 target에 전달 (target에 전달되더라도 삭제되지 않음)
  • 여러 개가 존재 할 수 있는데 이를 replication 이라 함 (consumer를 늘려 분산 처리 가능하여, 손실위험 감소)
    • partition 1  -> learder partition
    • replication 3   -> follower partition
    • 즉, 원본 1 복제본 2 -> ISR

broker : 카프카가 설치되어 있는 서버 단위로, 브로커 개수에 따라 replication 개수가 제한 됨 (보통 3개) 

partitioner : producer에서 어느 파티션으로 갈지 정하는 애 (메시지 키,값에 따라)

  • Y : hash 따라서, N : round-robin (알아서 적절히), custom (vip : partition 8, normal : partition 2)

lag : producer가 마지막에 넣은 offset(위치)과 consumer가 마지막에 넣은 offset간 차이. lag는 여러 개 일 수 있음

  • producer와 consumer 상태 파악용

burrow : lag 모니터링 솔루션

 

 


kafka streams : 실시간 데이터를 빠르게 처리 할 수 있는 프레임워크 (consumer를 통해 데이터를 처리하는 것보다 안전하고 빠름)

kafka connet : 반복적인 데이터 파이프라인을 효율적으로 배포하고 관리하는 공식 컴포넌트 (굳이 컨슈머로 여러 개 만들기 보다 커넥트 구축 권장)

  1. 커넥트 (커넥터가 동작하도록)
    • 단일모드 커넥트 
    • 분산모드 커넥트 : 여러 개의 커넥트를 하나의 클러스터로 묶음
  2. 커넥터 (데이터를 처리하도록)
    • 싱크 커넥터 : 컨슈머 역할 
    • 소스 커넥터 : 프로듀서 역할

 

 


Reference

https://blog.voidmainvoid.net/179

 

빅 데이터 처리를 위한 아파치 Kafka 개요 및 설명

Apache Kafka LinkedIn에서 최초로 만들고 opensource화 한 확장성이 뛰어난 분산 메시지 큐(FIFO : First In First Out) → 분산 아키텍쳐 구성, Fault-tolerance한 architecture(with zookeeper), 데이터 유실 방지를 위한 구

blog.voidmainvoid.net

https://www.inflearn.com/course/%EC%95%84%ED%8C%8C%EC%B9%98-%EC%B9%B4%ED%94%84%EC%B9%B4-%EC%9E%85%EB%AC%B8/dashboard

 

728x90
반응형