[✉️ Kafka] Kafka 이해하기2 - Zookeper, Broker, Message

2024. 9. 27. 14:39·DevOps
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의 관계 그리고 Bootstrap Servers

 

  • Broker ID와 Partition ID 간에는 아무런 관계가 없음
  • Topic을 구성하는 Partition들은 여러 Broker에 분산됨
  • Topic 생성시 kafka가 자동으로 Topic을 구성하는 전체 Partition들을 모든 Broker에게 할당해주고 분배해 줌

 

  • 모든 Kafka Broker는 Bootstrap 서버라고 부름
  • 하나의 Broker에만 연결하면 Cluster 전체에 연결됨 -> 하지만, 특정 Broker 장애를 대비하여, 전체 Broker List(IP, port)를 파라미터로 입력하는 것을 권장한다고 함
  • 각각의 Broker는 모든 Broker, Topic, Partition에 대해 알고 있음(Metadata)

 

Zookeper

 

 

  • Zookeeper는 Broker를 관리 (Broker 들의 목록/설정을 관리)하는 소프트웨어
  • Zookeeper 없이는 Kafka가 작동할 수 없으며, Zookeeper는 홀수의 서버로 작동하게 설계되어 있음(최소3, 권장5)
  • Zookeeper에는 Leader(writes)가 있고 나머지 서버는 Follower(reads)

 

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

 

Message

 

 

메시지 Message

  • 메시지는 Kafka를 통해 전달되는 데이터 단위.
  • 메시지는 키(key), 값(value), 타임스탬프(timestamp), 그리고 몇 가지 메타데이터로 구성.

 

키 Key

  • 키는 메시지를 특정 파티션에 할당하는 데 사용되는 값.
  • 동일한 키를 가진 메시지는 항상 동일한 파티션에 저장.

 

 

 

 

🔗 참고 포스팅

https://velog.io/@kidae92/Apache-Kafka-%EC%A3%BC%EC%9A%94-%EC%9A%94%EC%86%8C2

 

Apache Kafka 주요 요소2(Zookeeper, Broker)

Kafka Broker는 Partition에 대한 Read 및 Write를 관리하는 소프트웨어Kafka Server라고 부르기도 하며, Topic내의 Partition들을 분산, 유지 및 관리각각의 Broker들은 ID로 식별됨 (단 ID는 숫자)Topic의 일부 Pa

velog.io

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'DevOps' 카테고리의 다른 글

Docker로 Cassandra 띄우기 및 실습하기  (1) 2024.10.04
[✉️ Kafka] Kafka 설치 및 예제로 실습해보기  (2) 2024.09.27
[✉️ Kafka] Kafka 이해하기1 - Producer, Consumer, Topic, Partition  (0) 2024.09.27
Docker로 pgAdmin 띄워서 PostgreSQL 손쉽게 활용하기  (1) 2024.09.25
Redis와 NoSQL, Redis의 데이터 타입 이해하기  (0) 2024.08.21
'DevOps' 카테고리의 다른 글
  • Docker로 Cassandra 띄우기 및 실습하기
  • [✉️ Kafka] Kafka 설치 및 예제로 실습해보기
  • [✉️ Kafka] Kafka 이해하기1 - Producer, Consumer, Topic, Partition
  • Docker로 pgAdmin 띄워서 PostgreSQL 손쉽게 활용하기
waVwe
waVwe
    반응형
  • waVwe
    waVwe 개발 블로그
    waVwe
  • 전체
    오늘
    어제
    • ALL (184)
      • Python (1)
      • Spring (15)
      • DevOps (10)
      • Git (6)
      • JAVA (4)
      • C (22)
      • 코테 문제 풀이 (124)
        • 프로그래머스 (43)
        • 백준 (2)
        • 정올 (64)
        • SW Expert Academy (1)
        • 온코더 oncoder (14)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

    • 🐙 Github
  • 공지사항

  • 인기 글

  • 태그

    스파르타코딩클럽
    이진트리
    내일배움캠프
    while문
    스프링부트
    아파치카프카
    스프링
    C언어
    연결리스트
    온코더
    docker
    알고리즘
    자바
    스파르타코딩
    프로그래머스
    MSA
    Til
    자료구조
    형변환
    CI/CD
    깃헙
    C
    progate
    깃
    java
    도커
    코테
    springboot
    devops
    정올
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
waVwe
[✉️ Kafka] Kafka 이해하기2 - Zookeper, Broker, Message
상단으로

티스토리툴바