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부터 정식으로 프로덕션(운영)에서 사용가능합니다.
참고자료
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 |