-
[Kafka] - 3. Broker&Zookeeper개발/Kafka 2022. 8. 3. 23:21
1. Broker
Partition에 대한 Read,Write를 관리하는 Software
- Kafka Broker = Kafka Server 와 동일한 의미.
- Topic 내에 Partition들을 분산, 유지 관리
- Broker들은 id로 identify ( Id는 무조건 숫자 )
- Topic은 일부 Partition들만 포함한다. ( 전체 Partition은 X )
- Broker의 id와 partition id는 아무 연관이 없다.
- Topic 생성 시 Kafka가 자동으로 Topic을 구성하는 Partition들을 Broker에게 분산 분배
Broker 1-2) Kafka Cluster
여러 개의 Broker로 구성
- Client는 특정 Broker에게 연결하여 전체 Cluster에 연결
- 최소 3대 이상의 Broker를 하나의 Cluster로 구성 (4대 이상 권장)
1-3) Bootstrap server
모든 Kafka Broker를 의미한다.
- Client들은 Broker를 연결할 때, 임의의 Broker를 연결하여 낸 정보를 통해 연결한다.
- 하나의 Broker에 연결하면 Cluster 전체에 연결이 가능하다. -> 하지만 특정 Broker 장애를 대비, 전체 Broker List(IP,Port)를 입력 권장
- 각각의 Broker들은 모든 Metadata( Broker,Topic,Partition )정보를 알고 있다.
2. Zookeeper
Broker를 관리(목록, 설정) 하는 Naming registry를 제공하는 Software
- Topic 생성/제거, Broker 추가/제거 등과 관련된 변경사항에 대해 Kafka에게 알려준다.
- Kafka는 Zookeeper 없이는 동작 불가 ( KIP-500을 통해서 zookeeper 제거하여 동작하도록 구성중에 있다 )
- zookeeper는 홀수의 서버로 동작하도록 설계( 최소3 , 권장5 )
- zookeeper는 Leader(write) 와 나머지 follower(read)로 구성된다.
- Leader로 부터 변경사항을 적용한 다음에 follower들이 이를 동기화 한다.
Quorum Algorithm
zookeeper를 관리하는 알고리즘
- Ensemble은 zookeeper 서버의 cluster
- 장애가 발생해도 일관성을 유지하기 위해 사용
- 3대로 구성되었다면, Ensemble에서 Quorum = 2 / zookeeper는 1대가 장애가 되어도 정상 작동
- 5대로 구성되었다면, Ensemble에서 Quorum = 3 / zookeeper는 2대가 장애가 되어도 정상 작동
'개발 > Kafka' 카테고리의 다른 글
[Kafka] - 6. Replication (0) 2022.08.04 [Kafka] - 5. Consumer (0) 2022.08.04 [Kafka] - 4. Producer (0) 2022.08.04 [Kafka] - 2. Topic&Partition&Segment (0) 2022.08.03 [Kafka] - 1. What is Apache Kafka (0) 2022.08.03