ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Kafka 기초 - Broker, Zookeeper
    Framework & Library/Kafka 2023. 2. 18. 17:50

    Broker, Zookeeper

    Broker

     

     - Broker는 Partition에 대한 Read 및 Write를 관리하는 소프트웨어이다.

     - Kafka Server라고 부르기도 한다.

     - Topic 내의 Partition들을 분산, 유지 및 관리하는 역할을 수행한다.

     - 각각의 Broker들은 ID로 식별되며, ID는 숫자로 이루어진다.

     - Broker는 Topic 데이터의 일부분을 가지고 있을 뿐, 데이터 전체를 가지고 있지는 않다.

     - Client는 특정 Broker에 연결하면 전체 Cluster에 연결된다.

     - 최소 3대 이상의 Broker를 하나의 Cluster로 구성해야 되며, 보통 4대 이상을 권장한다.

     

     

     - Topic을 구성하는 Partition들은 여러 Broker 상에 분산된다.

     - Topic 생성 시 Kafka가 자동으로 Partition들을 모든 Broker에게 할당해 주고 분배해 준다.

     - 모든 Broker는 Bootstrap 서버라고 부른다.

     - 각각의 Broker는 모든 Broker, Topic, Partition에 대해 알고 있다.

     

    Zookeeper

    1. Broker를 관리하는 소프트웨어

     - Zookeeper는 Broker를 관리하는 소프트웨어이다.

     - Zookeeper는 Topic의 생성 및 제거, Broker의 추가 및 제거 등 변경사항에 대해 Kafka에 알려주는 역할을 한다.

     - Zookeeper 없이는 Kafka가 작동될 수 없다. (하지만, 2022년에 Zookeeper를 제거한 정식 버전이 출시되었다.)

     - Zookeeper는 홀수의 Broker로 작동하게 설계되어 있다.

     - Zookeeper에는 Leader(Write)가 있고, 나머지 서버는 Follower(Read)의 역할을 수행한다.

     

    2. Leader/Follower 기반 Master/Slave 아키텍처

     

     - Zookeeper는 분산형 Configuration 정보 유지, 분산 동기화 서비스를 제공하고 대용량 분산 시스템을 위한 네이밍 레지스트리를 제공하는 소프트웨어이다.

     - 분산 작업을 제어하기 위한 Tree 형태로 구성되어 있는 데이터 저장소이다.

     - Zookeeper를 사용하여 멀티 Kafka Broker들 간의 정보 공유 및 동기화 등을 수행한다.

     

    3. Quorum 알고리즘 기반의 Zookeeper

     

     - Zookeeper는 Quorum 알고리즘 기반으로 동작한다.

     - Quorum은 "정족수"이며, 합의체가 의사를 진행시키거나 의결을 하는데 필요한 최소한도의 인원수를 뜻한다.

     - 즉, 합의체가 의사를 진행시키기 위해서는 과반수 이상의 "정족수"가 필요하다는 뜻이다.

     - 분산 코디네이션 환경에서 예상치 못한 장애가 발생해도 분산 시스템의 일관성을 유지시키기 위해 사용된다.

     - Ensemble이 3대로 구성되어 있다면, Quorum은 2가 되어야 한다. 즉, Zookeeper 1대가 장애가 발생하더라도 정상 동작된다는 의미이다.

     - Ensemble이 5대로 구성되어 있다면, Quorum은 3이 되어야 한다. 즉, Zookeeper 2대가 장애가 발생하더라도 정상 동작된다는 의미이다.

     

    Ensemble은 Zookeeper 서버의 클러스터를 의미한다.

     

    최종 정리

     1. Broker는 Partition에 대한 Read 및 Write를 관리하는 소프트웨어이다.

     2. Broker는 Topic 내의 Partition 들을 분산, 유지 및 관리하는 역할을 수행한다.

     3. 최소 3대 이상의 Broker들을 하나의 Cluster로 구성해야 한다. (보통, 4대 이상의 Broker들을 권장한다.)

     4. Zookeeper는 Broker를 관리하는 소프트웨어이다.

     5. Zookeeper는 홀수의 Broker로 작동하게 설계되어 있다. (최소 3개의 Broker로 구성되어야 하며, 5대의 Broker를 권장한다.)


    출처

     https://fastcampus.co.kr/dev_online_kafka

     

    728x90

    'Framework & Library > Kafka' 카테고리의 다른 글

    Kafka - Replication  (0) 2023.02.20
    Kafka 기초 - Consumer  (0) 2023.02.18
    Kafka 기초 - Producer  (0) 2023.02.18
    Kafka 기초 - Topic, Partition, Segment  (0) 2023.02.17
    Kafka 기초 - Kafka란?  (0) 2023.02.17

    댓글

Designed by Tistory.