ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.