Kafka KRaft 모드란?
2020년에 Kafka 프로젝트는 주키퍼에 대한 의존성을 제거하는 작업을 시작했다. 그걸 KIP-500이라 부른다.
- 3.x 버전 부터 구현된 기능이다.
- 프로덕션 준비는 3.3.1버전부터 된다
- KIP-833부터다.
- 4.0 버전부터 KRaft만 지원되며 메커니즘에서 주키퍼가 빠져 지원이 안될예정이다.
주키퍼를 제거한 이유
- 주키퍼를 사용하면 파티션이 100,000개를 넘겼을 때 Kafka 클러스터에 스케일링(클러스터 분포를 같게 만드는 작업) 문제가 있었기 때문이다.
- 주키퍼를 제거함으로써 Kafka는 수백만개의 파티션으로 확장할 수 있게 됐다.
- 카프카 모니터링, 지원, 관리가 수월해졌다.
- 시스템 전체에 하나의 보안 모듈을 사용할 수 있게 된다.
- 과거에는 주키퍼 보안, 카프카 보안 두개를 신경써야 했다
- 시작 프로세스도 한개로 줄어서 컨트롤러 셧다운 시간과 복구 시간도 단축됐다.
KRaft 아키텍처와 주키퍼 비교
이름 | 주키퍼 | KRaft |
---|---|---|
설명 | 주키퍼에는 Kafka 브로커를 관리하는 리더가 있는 주키퍼 Quorum이 있다. | 하지만 Quorum Controller가 있는 경우에는 Kafka 브로커들만 있고 그것들 중에 하나가 Quorum 리더가 된다. |
부연 | 아키텍처가 복잡해 진다. | 아키텍처가 단순해진다. 그리고 성능도 개선된다. |
- 제어 셧다운 시간과 무제어 셧다운 후 복구 시간이 상당히 우수하다.
- 엄청난 개선을 통해 사용하는 이유이다.