Spring Batch JobRepository的位置和缩放

时间:2018-12-17 14:01:17

标签: java spring spring-batch

this article中我们可以了解到Spring-Batch在某些SQL存储库中拥有作业的状态。

this article中我们可以了解到JobRepository的位置可以配置-可以在内存中,也可以是远程数据库。

因此,如果我们需要扩展批处理作业,是否应该运行几个不同的Spring-batch JAR,它们都配置为使用相同的共享数据库以保持同步?

这是正确的模式/架构吗?

1 个答案:

答案 0 :(得分:1)

是的,这是要走的路。从不同的物理节点启动同一作业时可能发生的问题是,您可以两次创建同一作业实例。在这种情况下,当重启失败的执行时,Spring Batch将不知道该选择哪个实例。共享作业存储库可以防止此类并发问题。

由于基础数据库的事务处理功能,作业存储库实现了此同步。可以将IsolationLevelForCreate设置为激进值(默认为SERIALIZABLE),以避免上述问题。

相关问题