【发布时间】:2015-05-26 12:20:52
【问题描述】:
我想了解有关 Spring Batch 处理中的数据流的一些信息,但无法在 Internet 上找到我要查找的内容(尽管此站点上有 some useful questions)。
我正在尝试建立在我们公司中使用 Spring Batch 的标准,我们想知道当多个处理器在一个步骤中更新不同数据源上的数据时 Spring Batch 的行为如何。
此问题侧重于分块过程,但请随时提供有关其他模式的信息。
据我所见(如果我错了,请纠正我),当读取一行时,它会在读取下一行之前遵循整个流程(读取器、处理器、写入器)(而不是筒仓处理,其中reader 将处理所有行,将它们发送到处理器,等等)。
在我的例子中,几个处理器读取数据(在不同的数据库中)并在此过程中更新它们,最后写入器将数据插入另一个数据库。目前,JobRepository 没有链接到数据库,但那将是一个独立的数据库,这使得事情仍然有点复杂。
此模型无法更改,因为数据属于多个业务领域。
在这种情况下如何管理事务? 是否只有在处理完整个块后才提交数据?然后,是否有两阶段提交管理?它是如何保证的?为了保证数据的一致性,应该进行哪些开发或配置?
更一般地说,在类似情况下您的建议是什么?
【问题讨论】:
标签: java transactions spring-batch