호환성

호환성 (Compatibility)

Kafka 4.0부터 큰 변화가 도입되면서 여러 컴포넌트 간의 호환성에도 영향을 주는 부분이 생겼어요. 업그레이드를 계획하거나 여러 버전을 함께 쓰는 상황에서 문제없이 동작하는지 확인할 수 있도록, 호환성 행렬(compatibility matrix)이 정리되어 있어요.

출처: 문서

본문

Kafka 버전별 JDK 호환성

모듈 Kafka 버전 Java 11 Java 17 Java 23
Clients 4.0.0
Streams 4.0.0
Connect 4.0.0
Server 4.0.0

참고: Kafka 4.0부터 Java 8은 제거되어 더 이상 지원되지 않아요.

서버 호환성 (Server Compatibility)

KRaft 클러스터 버전 호환 4.0 서버 (동적 voter) 호환 4.0 서버 (정적 voter)
3.2.x 이전
3.3.x
3.4.x
3.5.x
3.6.x
3.7.x
3.8.x
3.9.x
4.0.x

참고: 정적 voter에서 동적 voter로 서버를 업그레이드할 수는 없어요. 자세한 내용은 KAFKA-16538을 참고해요.

클라이언트/브로커 순방향 호환성 (Client/Broker Forward Compatibility)

Kafka 버전 모듈 Kafka 4.0 호환성 주요 차이점/제한 사항
0.x, 1.x, 2.0 Client ❌ 호환 안 됨 사전 0.10.x 프로토콜은 Kafka 4.0에서 완전히 제거됨 (KIP-896).
Streams ❌ 호환 안 됨 사전 0.10.x 프로토콜은 Kafka 4.0에서 완전히 제거됨 (KIP-896).
Connect ❌ 호환 안 됨 사전 0.10.x 프로토콜은 Kafka 4.0에서 완전히 제거됨 (KIP-896).
2.1 ~ 2.8 Client ⚠️ 부분 호환 자세한 내용은 Consumer, Producer, Admin Client 섹션 참고.
Streams ⚠️ 제한적 호환 자세한 내용은 Kafka Streams 섹션 참고.
Connect ⚠️ 제한적 호환 자세한 내용은 Connect 섹션 참고.
3.x Client ✅ 완전 호환
Streams ✅ 완전 호환
Connect ✅ 완전 호환

참고: Kafka 4.0부터 AdminClient 명령의 --zookeeper 옵션은 제거됐어요. Kafka 클러스터와 상호작용할 때는 반드시 --bootstrap-server 옵션을 사용해야 해요. 이는 KRaft 모드로의 전환과 맞물린 변화예요.

더 알아보기 (Learn more)

  • 업그레이드를 앞두고 있다면 호환성 표를 먼저 확인하고, 다른 버전과의 조합이 안전한지 살펴보면 돼요.
  • KRaft 모드로의 전환에 대한 자세한 내용은 Getting Started의 KRaft vs ZooKeeper 문서를 참고해요.