Spring Batch 6.0.0-M3 和 5.2.3 已发布!

版本发布 | Mahmoud Ben Hassine | 2025年9月17日 | ...

我很高兴代表团队和所有贡献者宣布,Spring Batch 6.0.0-M35.2.3 现已在 Maven Central 上发布!

5.2.3 版本是一个维护版本,包含多个错误修复和依赖项升级。您可以在发布说明中找到完整的更改列表。

这篇博文主要介绍 6.0.0-M3 里程碑版本,它带来了以下特性和改进

  • 新的并发模型
  • 能够停止所有类型的步骤
  • 使用 Java Flight Recorder 进行可观察性

有关完整的更改列表,请在此处查看其发布说明。

新的并发模型

在此版本之前,基于“并行迭代”概念的并发模型需要在不同级别进行大量状态同步,并且在节流和反压方面存在一些限制,这导致了混乱的事务语义和糟糕的性能。

此版本重新审视了该模型,并采用了一种基于生产者-消费者模式的新的、简化的并发方法。并发的块处理步骤现在在生产者线程和消费者线程之间使用一个有界内部队列。一旦准备好处理,项目就会被放入队列中,并且一旦项目可用于处理,消费者线程就会从队列中取出项目。一旦块准备好写入,生产者线程就会暂停直到块被写入,然后恢复生产项目。

这个新模型效率更高,更容易理解,并为并发执行提供了更好的性能。

停止所有类型步骤的能力

截至v5.2,只能通过JobOperator#stop外部停止Tasklet步骤。如果自定义的Step实现想要处理外部停止信号,它就不能。

此版本添加了一个名为StoppableStep的新接口,它扩展了Step,并且可以由任何能够处理外部停止信号的步骤实现。

使用 Java Flight Recorder 进行可观测性

除了现有的 Micrometer 指标之外,Spring Batch 6.0 还引入了对 Java Flight Recorder (JFR) 的支持,以提供增强的可观测性功能。

JFR 是 Java 虚拟机中内置的强大分析工具。它允许您以最小的性能开销捕获有关应用程序运行时行为的详细信息。

此版本引入了多个 JFR 事件,用于监视批处理作业执行的关键方面,包括(但不限于)作业和步骤执行、项目读写以及事务边界。

反馈

我要感谢在此版本中发挥作用的所有贡献者!随着我们继续开发 Spring Batch 6,我们期待您在 Github IssuesGithub DiscussionsX 上提供反馈。


Spring Batch 主页|Github 上的源代码|参考文档

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有