Kafka Broker: Topic과 Partition을 유지 및 관리
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대 이상을 권장함
Zookeeper: Broker를 관리
Zookeeper는 Broker를 관리 (Broker 들의 목록/설정을 관리)하는 소프트웨어
. 변경사항에 대해 Kafka에게 알림: 토픽 생성/제거, Broker 추가/제거 등
. Zookeeper는 홀수의 서버로 작동하게 설계되어 있음(최소 3, 권장 5)
. Zookeeper에는 Leader(writes)가 있고 나머지 서버는 Follower(reads)
Zookeeper 아키텍쳐: Leader/Follower 기반 Mater/Slave 아키텍쳐
Zookeeper는 분산형 Configuration 정보 유지, 분산 동기화 서비스를 제공하고
대용량 분산 시스템을 위한 네이밍 레지스트리를 제공하는 소프트웨어
분산 작업을 제어하기 위한 Tree 형태의 저장소
-> Zookeeper를 사용하여 멀티 Kafka Broker들 간의 정보(변경 사항 포함) 공유, 동기화 등을 수행
. 변경사항에 대해 Kafka에게 알림: 토픽 생성/제거, Broker 추가/제거 등
. Zookeeper는 홀수의 서버로 작동하게 설계되어 있음(최소 3, 권장 5)
. Zookeeper에는 Leader(writes)가 있고 나머지 서버는 Follower(reads)
Zookeeper Failover: Quorum 알고리즘 기반
Quorum(쿼럼)은 "정족수"이며, 합의체가 의사를 진행시키거나 의결을 하는데 필요한 최소 인원을 뜻함
분산 코디네이션 환경에서 예상치 못한 장애가 발생해도 분산 시스템의 일관성을 유지시키기 위해서 사용
'~2022 > Apache Kafka' 카테고리의 다른 글
[Kafka] Consumer (0) | 2022.04.07 |
---|---|
[Kafka] Producer (0) | 2022.04.07 |
[Kafka] Topic, Partition, Segment (0) | 2022.04.06 |
[Kafka] server.properties (0) | 2022.04.06 |
[Kafka] 기본 개념 (0) | 2022.03.16 |