Spring batch 使用Spring批处理作业分发的远程分块

Spring batch 使用Spring批处理作业分发的远程分块,spring-batch,spring-integration,Spring Batch,Spring Integration,我在运行Spring批处理作业时遇到了一个技术问题。 该作业只需从DB(MongoDB)读取记录,对记录进行一些计算(聚合),然后将记录结果写入另一个表。 读取A、处理A、写入记录B B是A的许多记录的集合。 我想使用远程分块来垂直缩放我的系统,从而使处理部分能够快速缩放。 我面临的问题是,我需要同步A记录,以便在将结果写入B时处理它们不会发生冲突。 如果我将10个A记录分发给4个从属记录,那么在将聚合结果写入B时,这些记录将发生冲突 有没有想过,当从主机向从机发送消息时,如何添加同步策略 提前

我在运行Spring批处理作业时遇到了一个技术问题。 该作业只需从DB(MongoDB)读取记录,对记录进行一些计算(聚合),然后将记录结果写入另一个表。 读取A、处理A、写入记录B B是A的许多记录的集合。 我想使用远程分块来垂直缩放我的系统,从而使处理部分能够快速缩放。 我面临的问题是,我需要同步A记录,以便在将结果写入B时处理它们不会发生冲突。 如果我将10个A记录分发给4个从属记录,那么在将聚合结果写入B时,这些记录将发生冲突

有没有想过,当从主机向从机发送消息时,如何添加同步策略


提前感谢…

如果您需要像您描述的那样同步数据,我建议不要使用远程分块,而是使用分区。这将允许您按分区,并消除您面临的同步问题。它还将提供额外的吞吐量,因为每个从机运行一个处理器(与远程分块相同)。

谢谢。你能推荐一个解决这个问题的特定示例的链接吗?好的,我成功地运行了一个带有本地分区的示例,并且运行得很好。还有一个问题:如何在对A记录的X分区后再次启动作业。表一直在增加。我很清楚你的要求,你想知道如何只处理总是有新记录的表中的新记录吗?没错。我想处理x条新记录,然后重新开始处理新的传入记录。