Kafka 주요 용어 정리

오랭·2022년 8월 11일
0
post-thumbnail

Kafka 주요 용어

name설명
Zookeeperkafka의 metadata관리, broker의 health check 등
kafka or kafka cluster여러대의 broker를 구성한 cluster
brokerkafka application이 설치된 server or node
producerkafka로 message를 보내는 역할을 하는 client
consumerkafka에서 message를 꺼내는 역할을 하는 client
topicmessage peed를 구분하는 고유 값
partition고성능의 병렬처리를 위하여 topic을 여러개로 나눈 것
segmentproducer가 전송한 message가 broker의 local disk에 저장되는 file
message or recordproducer가 broker로 전송하거나 consumer가 읽어가는 데이터 조각

kafka의 핵심 개념

  1. 분산 시스템
    네트워크 상에서 연결된 컴퓨터들의 그룹
    분산시스템은 성능이 좋다
    하나의 서버 or 노드에서 장애가 발생할 때 다른 살아있는 노드가 대신처리
    장애대응이 좋다
    부하가 높은 경우에는 시스템 확장이 용이
    브로커가 온라인 상태일때도 간단하게 브로커를 추가 가능
  2. 페이지 캐시
    직접 디스크에 읽고 쓰는 대신 물리메모리 중 application이 사용하지 않는 일부 잔여 메모리를 활용
    디스크 I/O에 대한 접근이 줄어들기때문에 성능 향상 가능
  3. 배치전송
    수많은 클라이언트들과 발생하는 통신을 묶어서 처리
    단건에 비해 네트워크 오버헤드 감소
    장기적으로는 더욱빠르고 효율적으로 처리
  4. 압축전송
    카프카에서는 압축전송을 권장
    지원 type : gzip, snappy, lz4, zstd
    네트워크 대역폭이나 회선비용 등 감소
  5. topic, partition, offset
    topic : 데이터를 저장
    partition : 병렬처리를 위하여 처리하는 단위
    offset : partition의 message가 저장되는 위치
  6. 고가용성 보장
    리플리케이션 기능(토픽의 파티션 복제)
    토픽을 생성할 때 옵션으로 리플리케이션 팩터 수를 지정
    원본 : leader
    복제본 : follower
  7. Zookeeper
    분산 어플리케이션에서의 코디네이터 역할
    여러대의 서버를 앙상블(클러스터)로 구성
    살아있는 노드가 과반수 이상 유지된다면 지속적으로 서비스가 가능한 구조
    지노드를 이용해 카프카의 메타정보가 주키퍼에 기록
    카프카의 중요한 메타데이터를 저장하고 각 브로커 관리

카프카 적절한 파티션 개수 설정에 도움을 주는 페이지

profile
호기심천국

0개의 댓글