728x90

Kafka Broker

- Kafka Broker는 Partition에 대한 Read 및 Write를 관리하는 소프트웨어이다.
- Kafka Server라고 부르기도 한다.
- Topic 내의 Partition 들을 분산, 유지 및 관리
- 각각의 Broker들은 ID로 식별된다.(단, ID는 숫자)
- Topic의 일부 Partition들을 포함한다.
- Topic 데이터의 일부분(Partition)을 갖을 뿐 데이터 전체를 갖고 있지 않는다.
- Kafka Cluster : 여러 개의 Broker들로 구성된다.
- Client는 특정 Broker에 연결하면 전체 클러스터에 연결된다.
- 최소 3대 이상의 Broker를 하나의 Cluster로 구성해야 한다.
- 4대 이상을 권장한다.
Kafka Broker ID와 Partition ID의 관계

- Broker ID와 Partition ID 간에는 아무런 관계가 없다.
- 어느 순서에나 있을 수 있다.
- Topic을 구성하는 Partition들은 여러 Broker 상에 분산된다.
- Topic 생성시 Kafka가 자동으로 Topic을 구성하는 전체 Partition들을 모든 Broker에게 할당해주고 분배해준다.
BrokerServers

- 모든 Kafka Broker는 Bootstrap(부트스트랩) 서버라고 부른다.
- 하나의 Broker에만 연결하면 Cluster 전체에 연결된다.
- 하지만, 특정 Broker 장애를 대비하여, 전체 Broker List(IP, port)를 파라미터로 입력 권장
- ","로 구분해서 전체 Broker List를 입력
- 각각의 Broker는 모든 Broker, Topic, Partition에 대해 알고 있다.(Metadata)
Zookeeper

- Zookeeper는 Broker를 관리 (Broker 들의 목록/설정을 관리)하는 소프트웨어
- Zookeeper는 변경사항에 대해 Kafka에 알림
- Topic 생성/제거, Broker 추가/제거 등
- Zookeeper 없이는 Kafka가 작동할 수 없다.
- KIP1)-500 을 통해서 Zookeeper 제거가 진행 중
- 2022년에 Zookeeper를 제거한 정식 버전 출시 예정중
- Zookeeper는 홀수의 서버로 작동하게 설계되어 있다.(최소3,권장5)
- Zookeeper에는 Leader(writes)가 있고 나머지 서버는 Follower(reads)
Zookeeper 아키텍처

- Zookeeper는 분산형 Configuration 정보 유지, 분산 동기화 서비스를 제공하고 대용량 분산 시스템을 위한 네이밍 레지스트리를 제공하는 소프트웨어
- 분산 작업을 제어하기 위한 Tree 형태의 데이터 저장소
- Zookeeper를 사용하여 멀티 Kafka Broker들 간의 정보(변경 사항 포함) 공유, 동기화 등을 수행한다.
Zookeeper 장애 극복 기능
Quorum 알고리즘 기반으로 장애를 극복한다.

- Ensemble은 Zookeeper 서버의 클러스터
- Quorum(쿼럼)은 “정족수”이며, 합의체가 의사를 진행시키거나 의결을 하는데 필요한 최소한도의 인원수를 뜻한다.
- 분산 코디네이션 환경에서 예상치 못한 장애가 발생해도 분산 시스템의 일관성을 유지시키기 위해서 사용한다.
- Ensemble이 3대로 구성되었다면 Quorum은 2, 즉 Zookeeper 1대가 장애가 발생하더라도 정상 동작
- Ensemble이 5대로 구성되었다면 Quorum은 3, 즉 Zookeeper 2대가 장애가 발생하더라도 정상 동작
정리
- Broker는 Partition에 대한 Read 및 Write를 관리하는 소프트웨어
- Broker는 Topic 내의 Partition 들을 분산, 유지 및 관리
- 최소 3대 이상의 Broker를 하나의 Cluster로 구성해야 한다.
- 4대 이상을 권장한다.
- Zookeeper는 Broker를 관리(Broker 들의 목록 / 설정 을 관리)하는 소프트웨어
- Zookeeper는 홀수의 서버로 작동하게 설계되어 있다.(최소 3, 권장 5)
728x90
'Kafka 완전 정복 : 클러스터 구축부터 MSA 환경 활용까지 > 기본,심화 개념, 아키텍처와 생태계' 카테고리의 다른 글
| Ch01. Apache Kafka 기본 개념 및 이해 - Replication (0) | 2023.03.29 |
|---|---|
| Ch01. Apache Kafka 기본 개념 및 이해 - Consume (0) | 2023.03.28 |
| Ch01. Apache Kafka 기본 개념 및 이해 - Producer (0) | 2023.03.28 |
| Ch01. Apache Kafka 기본 개념 및 이해 - Topic, Partition, Segment (0) | 2023.03.19 |
| Ch01. Apache Kafka 기본 개념 및 이해 - Apache Kafka (0) | 2023.03.19 |