Spring for Apache Kafka 发布 4.1.0-RC1、4.0.5 及 3.3.15 版本
我代表团队以及所有做出贡献的人员,非常高兴地宣布 Spring for Apache Kafka 4.1.0-RC1、4.0.5 和 3.3.15 版本现已发布。我们衷心感谢所有使这些版本发布成为可能的贡献者。
关于 4.1 系列相较于 4.0 的新特性,更详细的介绍请参阅参考手册中的 What's New in 4.1 Since 4.0 章节。
4.1.0-RC1 新特性
共享消费者 (Share consumer)
-
ShareAckMode(#4376): 容器配置现在使用ShareAckMode枚举(EXPLICIT、MANUAL、IMPLICIT)来替代ContainerProperties中已弃用的布尔值;现有应用程序的默认值保持不变。详情请见:记录确认 (Record acknowledgment)。 -
异步提交 (#4324, #4380): 共享容器可以使用异步确认提交;提供了
AcknowledgementCommitCallback作为提交回调,以便用户进行更精细的控制。详情请见:同步与异步提交 (Synchronous vs asynchronous commits)。 -
share.acquire.mode(#4326): 内置验证功能确保share.acquire.mode(KIP-1206) 通过 Spring 的配置模型正确配置。详情请见:获取模式 (Acquire mode)。 -
生命周期事件 (#4327):
ShareKafkaMessageListenerContainer除了现有的启动事件外,还发布了额外的停止和失败事件。详情请见:生命周期事件 (Lifecycle events)。
Kafka Streams
-
group.protocol(#4329):StreamsBuilderFactoryBean公开了groupProtocol,以便您可以选择经典消费者协议或用于服务端再平衡的 Streams 组协议 (KIP-1071)。详情请见:组协议 (Group protocol)。 -
原生死信队列 (DLQ) 和 Streams 异常处理器 (#4328): Kafka 4.2 的 KIP-1034 通过共享的
handleError()契约以及 Kafka Streams 本身发出的可选死信记录,扩展了反序列化、处理和生产异常处理器。Spring Kafka 传统上使用RecoveringDeserializationExceptionHandler配合DeadLetterPublishingRecoverer+KafkaTemplate。此版本将 Spring Kafka 用于 Kafka Streams 的恢复处理器与 KIP-1034 对齐:更新了RecoveringDeserializationExceptionHandler,并新增了RecoveringProcessingExceptionHandler/RecoveringProductionExceptionHandler。当您配置了 DLQ 主题、目标解析器或工厂 bean 的死信主题名称时,失败处理可以遵循原生的 DLQ 路径;如果不配置,行为将保持为您已依赖的基于恢复器的路径。处理器配置和 DLQ 选项:反序列化恢复 (Deserialization recovery)、处理恢复 (Processing recovery)、生产恢复 (Production recovery)。
其他修复与文档更新
- 使用过滤消息进行异步处理 (
FilteringMessageListenerAdapter) (#4377) ShareKafkaMessageListenerContainer.doStart()等待消费者线程完成 (#4357)StreamsBuilderFactory属性在初始化后保持不可变 (#4382)- 在消费者和生产者工厂上添加 JSpecify
@Nullable注解 (#4355) - 明确了关于
messageListener的容器属性文档 (#4417)
4.0.5 和 3.3.15(补丁版本)
补丁版本 4.0.5 和 3.3.15 包含了我们在 4.1.0-RC1 中发布且适用于这些分支的同类修复。
4.0.5 包含了针对异步提交过滤、共享容器启动、StreamsBuilderFactory 不可变性、工厂可空性注解、Kafka 客户端补丁对齐以及当前 Spring 堆栈 BOM(Spring Framework、Reactor、Micrometer、Tracing、Spring Data、Logging)的修复。
3.3.15 引入了 FilteringMessageListenerAdapter 的修复,并对 3.3.x 系列进行了 Framework/Reactor 的维护性升级。
发布说明
更多详细信息以及依赖更新和其他更改,请参阅发布说明。
Spring Boot 集成
Spring Kafka 3.3.15 将集成到 Spring Boot 3.5.14 中。Spring Kafka 4.0.5 将集成到 Spring Boot 4.0.6 中。Spring Kafka 4.1.0-RC1 将集成到 Spring Boot 4.1.0-RC1 中。
社区反馈
欢迎在 GitHub 上提供反馈和报告问题。