当前版本仍在开发中,尚不被视为稳定版本。最新稳定版请使用 Spring Batch 文档 6.0.2!

Spring Batch 集成

很多 Spring Batch 用户都会遇到一些超出 Spring Batch 自身职责范围的需求,而这些需求往往可以借助 Spring Integration 以高效且简洁的方式实现。反过来,Spring Integration 用户也可能遇到 Spring Batch 场景,需要一种方式把两个框架高效整合起来。在这种背景下,会自然产生出一系列模式和用例,而 Spring Batch 集成模块正是为了解决这些需求而存在的。

Spring Batch 与 Spring Integration 之间的边界并不总是泾渭分明,但有两条建议通常很有帮助:一是从粒度角度思考,二是套用常见模式。本节会介绍其中一些常见模式。

在批处理流程中引入消息机制,可以实现操作自动化,也有助于对关键关注点进行解耦和分层。例如,可以通过一条消息触发某个 job 执行,而这条消息本身又可以通过多种方式对外暴露。反过来,当某个 job 完成或失败时,也可以发送一条消息作为事件通知,而这些消息的消费者可能关心的是运维层面的事务,与应用本身并无直接关系。消息机制也可以直接嵌入 job 内部,例如通过消息通道读取或写出待处理 item。远程分区和远程 chunking 则提供了把工作负载分发到多个 worker 的方式。

本节涵盖以下几个关键概念: