인강 정리/Kafka 완전 정복

kafka 기본 개념 및 구성(2)

미로처럼 2024. 10. 21. 16:56
728x90

Broker, Zookeeper

 

 

kafka cluster 구성

 

1. Broker

Kafka Broker 는 Partition에 대한 Read 및 Write 를 관리하는 소프트웨어 

 

클러스터 내부 broker 구성 예시

 

  • kafka Broker는  Kafka Server 라고 부르기도함
  • Topic 내의 Partition 들을 분산, 유지 및 관리 
  • 각각의 Broker 들은 아이디로 식별됨 (단, ID는 숫자)
  • Topic의 일부 Partition들을 포함(multi broker로 흩어져 있기때문에  전체가 아닌 일부만 갖고 있음)
  • Kafka Cluster는 여러개의 Broker 로 구성
  • Client는 특정 Broker에 연결하면 전체 클러스터에 연결됨
  • 최소3대이상의 Broker를 하나의 Cluster 로 구성 (1cluster 안에  4개 Broker 권장) 

Broker ID와 Partition 아이디의 관계

관계는 없고 Kafka Cluster 가 자동 할당

 

Client

  • Kafka Boker는 Bootstrap(부투스트랩) 서버라고 부름
  • Client -> Broker 연결 시 Cluster 전체 열결되어 전체 Broker 리스트를 알 수 있다 
  • 특정 Broker의 장애를 대비해 전체 Broker List(IP, PORT)를 파라미터로 입력 권장
  • 각각의 Broker 는 모든 Broker, Topic, Partition에 대해 알고 있음(Metadata)

client 연결 시

 

 

2. ZooKeeper

  • ZooKeeper는 Broker들을 관리(Broker들의 목록 설정) 하는 소프트웨어이다.
  • Zookeeper를 통해  변경사항을 감지하여 Kafka에 알림  -> Topic 생성 제거 , Broker 추가 제거
  • Zookeeper 없이 Kafka 동작 불가 했음(4.0 이전 버전)  현재는 없이도 동작 가능
  • Zookeeper는 홀수의 서버로 작동하도록 설계되어 최소 3개, 권장5개 이다
  • Zookeeper는 Leader(Writes)와 나머지 Follower (reads)로 구성

Zookeeper 구성

 

  • Zookeeper는 분산형 Configuration 정보 유지, 분산 동기화 서비스를 제공하고 대용량 분산 시스템을 위한 네이밍 레지스트리를 제공하는 소프트웨어 
  • 분산 작업을  제어하기 위해Tree 형태의 데이터 저장소로 이용 -> 멀티 Kafka Broker들 간의 정보(변경 사항 포함) 공유 , 동기화 등을 수행
  • Ensemble(앙상블)은 Zookeeper의 서버 클러스터 이다.
  • Zookeeper는 Quorum(쿼럼) 알고리즘기반이며, Quorum은 정족수라는 뜻이면 합의체가 의사를 진행시키거나의결을 하는데 필요한 최소한도의 인원수를 뜻함 
  • 분산코디네이션 환경에서 예상치 못한 장애가 발생해도 분산 시스템의 ㅇ리관성을 유지시키기 위해서 사용
  •  
  • Ensemble이 3대로 구성되었다면 Quorum은 2, 즉 Zookeeper 1대가 장애가 발생하더라도 정상 동작
  • Ensemble이 5대로 구성되었다면 Quorum은 3, 즉 Zookeeper 2대가 장애가 발생하더라도 정상 동작
  • 과반수 합의체를 위해 꼭 홀수로 구성

 

728x90