Study/kafka

카프카 용어

voider 2023. 2. 19. 20:08

kafka

  • 카프카 또는 카프카 클러스터. 아파치 프로젝트 애플리케이션 이름. 여러 대의 브로커를 구성한 클러스터를 의미한다.

broker

  • 카프카 애플리케이션이 설치된 서버 또는 노드

producer

  • 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭한다.

consumer

  • 카프카 애플리케이션이 설치된 서버 또는 노드

message

  • 프로듀서가 브로커로 전송하거나 컨슈머가 읽어가는데이터 조각

topic

  • 카프카는 메시지 피드를 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유하다.

partition

  • 하나의 토픽이 한 번에 처리할 수 있는 한계를 높이기 위해 토픽 하나를 여러 개로 나눠 병렬 처리가 가능하게 만든 것
  • 토픽은 논리적 개념이고 물리적으로 저장되는 곳은 파티션임. 토픽은 최소 하나의 파티션을 가짐.
  • 파티션은 쉽게 확장 가능하지만, 절대 줄일 수 없음
  • 2 또는 4 정도로 생성한 후, 메시지 처리량이나 컨슈머의 LAG을 모니터링하면서 조금씩 늘려가는 방법이 좋음.
  • LAG은 '프로듀서가 보낸 메시지 수(카프카에 남은 메시지 수) - 컨슈머가 가져간 메시지 수를 나타냄.
    • 프로듀서가 5개의 메시지를 카프카로 전송
    • 컨슈머가 4개의 메시지를 가져감.
    • 이때 LAG은 1.

segment

  • 브로커의 로컬 디스크에 로그 파일 형태로 저장된 실제 메시지
  • 프로듀서가 브로커로 전송한 메시지는 토픽의 파티션에 저장됨.
  • 각 메시지는 세그먼트라는 로그 파일 형태로 브로커의 로컬 디스크에 저장됨..
  • kafka-logs 디렉터리 내에 파티션 디렉터리에서 확인 가능

replication

  • 카프카에서 리플리케이션이란 각 메시지를 여러 개로 복제해서 카프카 클러스터 내 브로커들에 분신시키는 동작이다.
  • 여기서 중요한 것은 '토픽'이 리플리케이션되는 것이 아니라, 토픽의 '파티션'이 리플리케이션 되는 것.
  • 원본과 리플리케이션을 구분하기 위해 리더(원본)팔로워(replica)라는 용어를 사용한다.
  • `replication-factor` 옵션으로 카프카 내 몇 개의 리플리케이션을 만들 것인지 설정할 수 있다.
  • 안정성만 생각해서 무작정 리플리케이션을 늘리는 것은 좋지 않다. 그만큼 브로커 리소스를 많이 사용하게 되는 것이어서 오버헤드가 발생할 수 있다.
    • 팔로워의 수만큼 결국 브로커의 디스크 공간도 소비됨. 따라서 이상적인 팩터 수를 유지해야 함.
    • 카프카에서 권장하는 리플리케이션 팩터는 3이다. 여기서 오해하지 말아야 할 것은 "리플리케이션 팩터가 3"이라는 의미는 리플리케이션이 3개라는 의미가 아니다. 아래 테이블 참고.
리플리케이션 팩터 수 리더 수 팔로워 수
2 1 1
3 1 2
4 1 3

ZooKeeper

  • 카프카의 메타데이터 관리 및 브로커의 health check을 담당한다.

'Study > kafka' 카테고리의 다른 글

카프카 프로듀서, 컨슈머 기본 동작  (0) 2023.02.20
카프카 기본  (0) 2023.02.19