领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我谨代表团队和所有贡献者宣布,Spring Batch 6.0.0-RC1 现已在 Maven Central 上发布!
此候选版本包含以下特性和改进:
有关更改的完整列表,请查看发布说明。
Spring Batch 6.0 引入了对批处理作业优雅停机的支持。此功能允许您以受控方式停止正在运行的作业执行,确保中断信号正确发送到正在运行的步骤。
当启动优雅停机时,作业执行将停止当前活动的步骤,并使用一致的状态更新作业存储库,从而实现可重启性。一旦运行中的步骤完成,作业执行将被标记为已停止,并且将执行任何必要的清理操作。
类似于远程分块,本地分块是一项新功能,它允许您在同一个 JVM 中使用多个线程在本地并行处理项目块。当您有大量项目需要处理并希望利用多核处理器时,此功能特别有用。通过本地分块,您可以配置一个面向分块的步骤,使用多个线程并发处理项目块。每个线程将独立读取、处理和写入自己的项目块,而该步骤将管理整体执行并提交结果。
在 Spring Batch 5.2 中,我们使用 BlockingQueueItemReader 和 BlockingQueueItemWriter 组件引入了使用本地线程进行 SEDA(分阶段事件驱动架构)风格处理的概念。在此基础上,Spring Batch 6.0 引入了使用 Spring Integration 消息通道进行大规模 SEDA 风格处理的支持。这允许您解耦批处理作业的不同阶段,并使用消息通道异步处理它们。通过利用 Spring Integration,您可以轻松配置和管理消息通道,并利用消息转换、过滤和路由等功能。
Spring Batch 6.0 已升级以支持 Jackson 3.x 进行 JSON 处理。此升级确保了与 Jackson 库中最新特性和改进的兼容性,同时提供了更好的性能和安全性。Spring Batch 中所有与 JSON 相关的组件,例如 JsonItemReader 和 JsonFileItemWriter,以及 JacksonExecutionContextStringSerializer,都已更新为默认使用 Jackson 3.x。
对 Jackson 2.x 的支持已被弃用,并将在未来的版本中移除。如果您目前在 Spring Batch 应用程序中使用 Jackson 2.x,建议升级到 Jackson 3.x 以利用最新的特性和改进。
此版本引入了对远程步骤执行的支持,允许您在远程机器或集群上执行批处理作业的步骤。此功能对于需要将工作负载分配到多个节点以提高性能和可伸缩性的大规模批处理场景特别有用。远程步骤执行基于 Spring Integration 消息通道,它实现了本地作业执行环境和远程步骤执行器之间的通信。
我要感谢在此版本中发挥作用的所有贡献者!随着我们继续开发 Spring Batch 6,我们期待您在 Github Issues、Github Discussions 和 X 上提供反馈。