[Kafka 이론] 10. Kafka KRaft (주키퍼 지우기)

Kafka KRaft 모드란?

2020년에 Kafka 프로젝트는 주키퍼에 대한 의존성을 제거하는 작업을 시작했다. 그걸 KIP-500이라 부른다.

  • 3.x 버전 부터 구현된 기능이다.
  • 프로덕션 준비는 3.3.1버전부터 된다
    • KIP-833부터다.
  • 4.0 버전부터 KRaft만 지원되며 메커니즘에서 주키퍼가 빠져 지원이 안될예정이다.

주키퍼를 제거한 이유

  • 주키퍼를 사용하면 파티션이 100,000개를 넘겼을 때 Kafka 클러스터에 스케일링(클러스터 분포를 같게 만드는 작업) 문제가 있었기 때문이다.
  • 주키퍼를 제거함으로써 Kafka는 수백만개의 파티션으로 확장할 수 있게 됐다.
  • 카프카 모니터링, 지원, 관리가 수월해졌다.
  • 시스템 전체에 하나의 보안 모듈을 사용할 수 있게 된다.
    • 과거에는 주키퍼 보안, 카프카 보안 두개를 신경써야 했다
  • 시작 프로세스도 한개로 줄어서 컨트롤러 셧다운 시간과 복구 시간도 단축됐다.

KRaft 아키텍처와 주키퍼 비교

스크린샷 2023-08-26 오후 2.59.17.png

이름 주키퍼 KRaft
설명 주키퍼에는 Kafka 브로커를 관리하는 리더가 있는 주키퍼 Quorum이 있다. 하지만 Quorum Controller가 있는 경우에는 Kafka 브로커들만 있고 그것들 중에 하나가 Quorum 리더가 된다.
부연 아키텍처가 복잡해 진다. 아키텍처가 단순해진다. 그리고 성능도 개선된다.

스크린샷 2023-08-26 오후 3.01.40.png

  • 제어 셧다운 시간과 무제어 셧다운 후 복구 시간이 상당히 우수하다.
  • 엄청난 개선을 통해 사용하는 이유이다.
LIST