본문 바로가기

빅데이터

Apache Kafka 4.0 출시! 무엇이 바뀌었을까?

728x90
반응형

Apache Kafka 4.0이 마침내 출시되었습니다. 이번 릴리스는 Kafka의 역사에서 중요한 전환점이 될 것입니다. 가장 큰 변화는 ZooKeeper가 완전히 제거되고 KRaft(Kafka Raft) 모드가 기본 적용된다는 점입니다. 이는 운영의 복잡성을 줄이고 안정성을 높이는 방향으로 Kafka가 나아가고 있음을 의미합니다.

그렇다면, Kafka 4.0에서 어떤 기능이 새롭게 추가되었으며, 업그레이드 시 고려해야 할 사항은 무엇일까요? 이 글에서 Kafka 4.0의 주요 변경 사항과 업그레이드 가이드를 자세히 살펴보겠습니다.

반응형

🚀 Kafka 4.0의 주요 변화

1️⃣ ZooKeeper 제거 & KRaft 기본 적용

기존 Kafka는 메타데이터 관리를 ZooKeeper에 의존했지만, Kafka 4.0부터는 KRaft(Kafka Raft) 모드가 기본으로 설정됩니다.

KRaft의 장점

  • ZooKeeper 없이 Kafka 자체적으로 메타데이터를 관리 → 운영 부담 감소
  • 컨트롤러 노드가 분산 환경에서 동적으로 조정됨 → 확장성 향상
  • 불필요한 리더 선출을 줄여 더 빠른 장애 복구 가능

⚠️ 주의할 점

  • Kafka 4.0에서는 ZooKeeper 모드를 사용할 수 없음 → 3.9 버전에서 KRaft로 미리 전환해야 함
  • 기존 ZooKeeper 기반 설정을 활용하려면 사전 마이그레이션 필요

🔑 Kafka 4.0의 주요 기능 및 개선 사항

📌 1. 소비자 그룹 성능 개선 (KIP-848)

Kafka 4.0에서는 소비자 그룹의 리밸런스(Rebalance) 성능이 크게 개선되었습니다.

  • 리밸런스 속도 향상 → 소비자 그룹 변경 시 다운타임 감소
  • 지연 시간 최소화 → 실시간 데이터 처리가 더욱 원활

📍 활성화 방법:
기본적으로 활성화되어 있으며, 클라이언트에서 group.protocol=consumer 옵션을 설정하면 사용할 수 있습니다.


📌 2. 새로운 메시지 처리 방식 (KIP-932)

Kafka 4.0에서는 "Queue for Kafka" 기능이 추가되어, 기존의 Publish-Subscribe 방식과 Point-to-Point 메시징을 동시에 지원합니다.

  • ✅ 메시지 공유 그룹(Share Groups) 개념 도입 → 소비자가 균등하게 메시지를 처리 가능
  • ✅ 특정 소비자가 특정 메시지를 우선적으로 처리할 수도 있음

📍 활성화 방법:
아직 Early Access(실험적 기능) 상태이므로, 실무 도입 전 테스트가 필요합니다.


📌 3. 데이터 안전성을 위한 리더 선출 개선 (KIP-966 & KIP-996)

Kafka 4.0에서는 리더 선출 방식이 개선되어 데이터 안전성이 더욱 강화되었습니다.

  • Eligible Leader Replicas (KIP-966, 미리보기 기능) → 리더 선출 시 안전한 데이터 복구 고려
  • Pre-Vote Mechanism (KIP-996) → 불필요한 리더 선출 방지, 서비스 안정성 향상

📍 활성화 방법:
해당 기능은 기본적으로 활성화되어 있으며, Kafka 4.0을 사용하면 자동 적용됩니다.


📢 Kafka 4.0 업그레이드 가이드

Kafka 4.0으로 업그레이드하기 전 반드시 사전 준비 작업을 해야 합니다.

🔎 1️⃣ 업그레이드 전 체크리스트

현재 버전 확인

  • Kafka 3.9 이하 버전을 사용하고 있다면, KRaft 모드 전환 필요

ZooKeeper에서 KRaft로 마이그레이션

  • ZooKeeper 지원이 사라졌기 때문에, Kafka 3.9에서 KRaft로 먼저 전환 후 업그레이드해야 함

지원되는 Java 버전 확인

  • Kafka 4.0은 Java 17을 요구하므로, 운영 환경에서 Java 버전을 먼저 확인해야 함

🔄 2️⃣ ZooKeeper에서 KRaft로 전환하는 방법

1️⃣ Kafka 3.9에서 KRaft 모드 활성화

kafka-storage.sh format --cluster-id "<YOUR_CLUSTER_ID>" --config server.properties

2️⃣ Kafka를 KRaft 모드로 실행

kafka-server-start.sh config/kraft/server.properties

3️⃣ ZooKeeper 데이터 마이그레이션 확인 후 Kafka 4.0으로 업그레이드


⚠️ Kafka 4.0 도입 시 고려해야 할 점

💡 기존 Kafka 3.x와의 차이점

변경 사항 Kafka 3.x Kafka 4.0

메타데이터 관리 ZooKeeper KRaft (ZooKeeper 제거)
소비자 리밸런스 기존 방식 KIP-848 적용 (더 빠른 리밸런스)
메시지 처리 방식 Publish-Subscribe만 지원 Point-to-Point 메시징 지원 (KIP-932)
리더 선출 안정성 기본 리더 선출 Pre-Vote & Eligible Leader Replicas 적용

🧐 결론: Kafka 4.0, 지금 도입해야 할까?

Kafka 4.0은 운영 효율성을 높이고, 안정성을 개선하며, 성능을 향상시킨 대형 업데이트입니다.
특히, KRaft 모드 기본 적용은 Kafka 운영 방식의 근본적인 변화를 의미합니다.

Kafka 4.0을 추천하는 경우

  • Kafka 3.9 이상을 사용 중이며, 이미 KRaft 모드로 운영하고 있다면 → 즉시 업그레이드 가능
  • 새로운 Kafka 클러스터를 구축하려 한다면 → Kafka 4.0을 바로 도입하는 것이 유리

⚠️ 업그레이드 전 신중한 검토가 필요한 경우

  • 아직 ZooKeeper를 사용하고 있다면, Kafka 3.9에서 먼저 KRaft로 전환 후 업그레이드
  • Java 17이 요구되므로, 기존 시스템과의 호환성을 먼저 확인

728x90

Kafka 4.0을 통해 Kafka는 더욱 독립적이고 유연한 데이터 스트리밍 플랫폼으로 자리 잡아가고 있습니다.
향후 Kafka는 KRaft의 성능을 더욱 최적화하고, 클라우드 네이티브 환경에서의 운영을 더욱 간소화하는 방향으로 발전할 가능성이 큽니다.

Kafka 4.0 업그레이드를 고민 중이라면, 먼저 테스트 환경에서 KRaft 전환을 시도해 보고, 운영 환경 적용 여부를 신중하게 결정하는 것이 중요합니다.

https://kafka.apache.org/blog?fbclid=IwZXh0bgNhZW0CMTEAAR3vzyASjRKF9AxneU5jFMPEjT0UZBjGkQIi2k0hX8ZLLQylpvgPHQyqu6w_aem_09QKSnESGIKcScin9F5Alg

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

728x90
반응형