스프링 카프카(Spring Kafka) 4.1.0-RC1, 4.0.5, 3.3.15 릴리즈

by DD
1개월 전
조회수 12

스프링 카프카(Spring for Apache Kafka) 4.1.0-RC1, 4.0.5, 3.3.15 버전 릴리즈 발표

4.1.0-RC1 버전에서 ShareAckMode, 비동기 커밋(Async Commits), 라이프사이클 이벤트(Lifecycle Events) 등 추가

카프카 스트림즈(Kafka Streams) 관련 기능 개선: group.protocol, 네이티브 DLQ 및 스트림즈 예외 처리기(Streams Exception Handlers) 추가

스프링 부트(Spring Boot)와의 통합: 3.3.15, 4.0.5, 4.1.0-RC1 버전이 각각 스프링 부트(Spring Boot) 3.5.14, 4.0.6, 4.1.0-RC1에 통합 예정

ShareAckMode를 활용한 컨테이너 설정

4.1.0-RC1 버전부터 컨테이너 설정에 ShareAckMode 열거형(Enum)이 도입되어, 기존의 부울(Boolean) 값 대신 EXPLICIT, MANUAL, IMPLICIT 모드를 선택할 수 있게 되었다.

EXPLICIT: 명시적 승인 모드

MANUAL: 수동 승인 모드

IMPLICIT: 암시적 승인 모드

이러한 변경은 레코드 승인(Record Acknowledgment)에 대한 세분화된 제어를 제공하며, 기존 애플리케이션과의 호환성(Compatibility)을 유지하면서 설정의 유연성(Flexibility)을 높였다.

비동기 커밋(Async Commits)을 통한 성능 개선

4.1.0-RC1 버전은 비동기 승인 커밋(Asynchronous Acknowledgment Commits)을 지원하여, 컨테이너의 성능을 향상시켰다.

AcknowledgementCommitCallback: 사용자 정의 커밋 콜백(Commit Callback) 제공

동기 커밋(Synchronous Commits) vs 비동기 커밋(Asynchronous Commits): 성능 트레이드 오프(Performance Trade-off) 고려

비동기 커밋을 사용하면, 커밋 작업으로 인한 블로킹(Blocking)을 방지하여, 컨테이너의 전반적인 처리량을 늘릴 수 있다. AcknowledgementCommitCallback을 통해, 사용자는 커밋 과정에 대한 세밀한 제어(Fine-grained Control)를 할 수 있다.

Kafka Streams 통합 개선

4.1.0-RC1 버전은 카프카 스트림즈(Kafka Streams)와의 통합을 강화하여, 스트림즈 애플리케이션의 안정성과 유연성을 높였다.

group.protocol: 서버 측 리밸런스(Server-side Rebalance)를 위해 classic consumer protocol 또는 Streams group protocol 선택

네이티브 DLQ 및 스트림즈 예외 처리기(Streams Exception Handlers): Kafka 4.2의 KIP-1034를 준수하여 RecoveringDeserializationExceptionHandler, RecoveringProcessingExceptionHandler, RecoveringProductionExceptionHandler 추가

이러한 개선 사항은 스트림즈 애플리케이션의 오류 처리(Error Handling)데이터 복구(Data Recovery) 능력을 향상시키며, 카프카 스트림즈(Kafka Streams)를 사용하는 개발자들에게 더 나은 경험을 제공한다.

스프링 부트(Spring Boot)와의 통합 및 패치 릴리즈

스프링 카프카(Spring Kafka) 3.3.15, 4.0.5, 4.1.0-RC1 버전은 각각 스프링 부트(Spring Boot) 3.5.14, 4.0.6, 4.1.0-RC1에 통합될 예정이다.

4.0.5: 비동기 커밋, Share Container 시작, StreamsBuilderFactory 불변성, 팩토리 널 가능성 주석, Kafka 클라이언트 패치 정렬, Spring Stack BOMs 수정

3.3.15: FilteringMessageListenerAdapter 수정, Framework/Reactor 유지보수

이러한 통합은 스프링 부트(Spring Boot) 사용자들에게 최신 스프링 카프카(Spring Kafka)의 기능을 쉽게 사용할 수 있도록 지원하며, 안정적인 환경을 제공한다. 패치 릴리즈를 통해, 기존 버전의 안정성(Stability)을 유지하면서, 새로운 기능과 개선 사항을 적용할 수 있다.

Spring for Apache Kafka 4.1.0-RC1, 4.0.5, and 3.3.15 Available