[Kafka] Kafka broker, Zookeeper의 역할

Woong·2021년 12월 15일
0

Apache Kafka

목록 보기
2/14

Broker

  • broker 는 상태를 저장하지 않는다 (stateless)
    • 상태 정보state는 Zookeeper를 통해 관리
  • producer 로부터 message 를 푸시받음
  • consumer 는 broker로 부터 message를 읽음

리더(Leader)

  • 하나의 토픽 파티션마다 존재하는 리더 broker 가 존재
    • 0개 이상의 follower broker 를 가짐

Follower

  • 리더 브로커를 복제하는 브로커
    • 리더에 대한 백업으로 follower 를 구성
    • 리더 broker 가 down되었을 시, zookeeper 에 의해 follower 브로커 중 하나가 새로운 리더 브로커로 선출

Controller

  • 클러스터 중 broker 하나가 controller 역할을 함
    • partition 관리를 책임지는 broker
      • 리더 선정, topic 생성, partition 생성, 복제본 관리
  • broker 의 상태 체크
  • broker down 시 해당 broker 가 리더였던 partiton의 새 리더 선출
  • 새로운 리더를 모든 브로커에 전달

Zookeeper 의 역할

Controller 선정

  • controller 장애 발생시 새 controller 선출

broker, consumer 를 관리하는 역할

  • broker 메타데이터 관리, 상태 정보 기록
  • 새로운 broker 추가
  • broker 장애 감지
  • 파티션 leader broker 기록, leader 장애시 새 leader 선출

topic 메타데이터 관리

  • partition 수, 특정 설정 파라미터 등 관리

클라이언트 할당(quota)

  • topic 을 읽고 쓰는 클라이언트에 대한 바이트 비율의 임계값 관리

Topic ACLS (접근 제어 목록)

  • 접근 제어 목록 Access Control Lists
    • topic 에 대한 읽기, 쓰기 권한 종류 결정

클러스터 상태를 producer, consumer 에 통보

  • Zookeeper 는 Kafka 기본 설치시 내장된 zookeeper를 사용해도 되고, 별도 zookeeper 클러스터를 이용할 수도 있음.

0개의 댓글