250x250
syk531
하루
syk531
전체 방문자
오늘
어제
  • 분류 전체보기 (166)
    • 개발 (166)
      • java (11)
      • kotlin (7)
      • spring, spring boot (35)
      • Javascript (4)
      • Tyhmeleaf (2)
      • Kafka (17)
      • Docker (8)
      • Kubernetes (3)
      • Elastic Stack (4)
      • react native (3)
      • Web (4)
      • GIS (3)
      • 리눅스 (16)
      • Windows (2)
      • 네트워크 (2)
      • 안드로이드앱 (5)
      • git (2)
      • Tool (15)
      • 프로젝트 (7)
      • 백준알고리즘 (14)
      • DB (2)

인기 글

최근 글

블로그 메뉴

    공지사항

    태그

    • 뉴스앱
    • 오블완
    • 티스토리챌린지

    최근 댓글

    티스토리

    hELLO · Designed By 정상우.
    syk531

    하루

    Apache Kafka Raft(KRaft) 소개(ZooKeeper 제거)
    개발/Kafka

    Apache Kafka Raft(KRaft) 소개(ZooKeeper 제거)

    2024. 2. 13. 12:58
    728x90
    반응형

    Apache Kafka Raft(KRaft)는 Kafka 2.8 버전에서 도입된 중요한 기능 중 하나입니다. Kafka 2.8 버전부터 KRaft (Kafka Raft 메타데이터 모드)라는 이름으로 알려진 이 기능은 Kafka의 클러스터 메타데이터 관리를 위한 새로운 방식을 제공합니다. 이전까지 Kafka는 메타데이터 관리를 위해 Zookeeper에 의존해 왔지만, KRaft 모드는 Kafka가 Zookeeper 없이 독립적으로 클러스터 메타데이터를 관리할 수 있게 해줍니다.

     

    Raft 프로토콜이란?

    Raft는 분산 시스템에서 높은 가용성을 보장하면서 일관된 상태를 유지하기 위해 설계된 합의 알고리즘입니다. Raft는 분산된 노드 간에 안정적인 리더 선출과 로그 복제를 통해 시스템의 일관성을 유지합니다. 이는 분산 시스템에서 매우 중요한 문제 중 하나로, 모든 노드가 동일한 순서로 동일한 결정을 내릴 수 있도록 보장합니다.

     

    KRaft 모드의 도입 배경과 목적

    • Zookeeper 의존성 제거: 기존 Kafka 아키텍처에서 Zookeeper는 브로커 관리, 토픽 메타데이터 관리 등 중요한 역할을 수행했습니다. 하지만 Zookeeper에 대한 의존성은 Kafka 클러스터의 운영 복잡성을 증가시켰고, 성능 병목 현상을 일으킬 수 있었습니다.
    • 운영 단순화: Zookeeper를 제거함으로써 Kafka 클러스터의 설정, 관리, 모니터링이 간소화됩니다. 이는 전반적인 운영 비용을 줄이고, 시스템의 안정성을 향상시킬 수 있습니다.
    • 성능 개선: Kafka 자체에서 메타데이터를 관리함으로써 성능이 개선될 수 있습니다. 특히 메타데이터 읽기/쓰기 작업에서 이점을 볼 수 있습니다.

     

    KRaft 모드의 작동 방식

    KRaft 모드에서 Kafka 클러스터는 내부적으로 Raft 프로토콜을 사용하여 리더 선출, 메타데이터 변경 사항의 로그 복제와 같은 작업을 수행합니다. 이는 Kafka 브로커들 사이에서 일관된 상태를 유지하고, 클러스터의 메타데이터를 안정적으로 관리할 수 있게 해줍니다.

     

    KRaft 적용 버전

    Kafka 2.8 버전부터 KRaft 모드를 실험적으로 사용할 수 있으며, Kafka 3.3부터 정식으로 프로덕션(운영)에서 사용가능합니다.

     

     

    참고자료

    https://developer.confluent.io/learn/kraft/?utm_source=gaerae.com&utm_campaign=%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%8A%A4%EB%9F%BD%EB%8B%A4&utm_medium=social

    https://www.confluent.io/blog/apache-kafka-3-3-0-new-features-and-updates/?utm_medium=social&utm_source=gaerae.com&utm_campaign=%EA%B0%9C%EB%B0%9C%EC%9E%90%EC%8A%A4%EB%9F%BD%EB%8B%A4&_ga=2.185231785.104573776.1707792416-603806812.1702017870&_gl=1*1r53kac*_ga*NjAzODA2ODEyLjE3MDIwMTc4NzA.*_ga_D2D3EGKSGD*MTcwNzc5Njk0NS4xMC4xLjE3MDc3OTczNjAuNjAuMC4w

    https://hoing.io/archives/4029

    728x90
    반응형
    저작자표시 (새창열림)

    '개발 > Kafka' 카테고리의 다른 글

    Kafka 토픽 메시지 삭제: 디스크 공간 확보 방법  (0) 2024.08.12
    [Kakfa] No `meta.properties` found in /tmp/kraft-combined-logs 에러 수정  (0) 2024.03.28
    Spring Boot에서 Kafka Topic이 Consume 안되는 현상 수정  (1) 2024.01.29
    Kafka 서버 비정상적 종료 에러 해결 (다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다)  (0) 2024.01.25
    Kafka 외부 접속 허용  (0) 2024.01.17
      '개발/Kafka' 카테고리의 다른 글
      • Kafka 토픽 메시지 삭제: 디스크 공간 확보 방법
      • [Kakfa] No `meta.properties` found in /tmp/kraft-combined-logs 에러 수정
      • Spring Boot에서 Kafka Topic이 Consume 안되는 현상 수정
      • Kafka 서버 비정상적 종료 에러 해결 (다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다)
      syk531
      syk531
      기억을 위해 기록을.

      티스토리툴바