繁体   English   中英

Spring 批量远程分区到多个应用程序实例

[英]Spring batch remote partitioning to multiple application instances

我正在使用 spring 批处理进行远程分区。我有多个 spring 批处理应用程序实例正在运行。 作为用例的一部分,我需要处理数据库中存在的所有记录。 所以我为每个记录分配实例。所以批处理应用程序的每个实例都可以处理实例特定的记录。

例如

Records1 -: instance1
Records2 -: instance1
Records3 -: instance2
Records4 -: instance2
.... so on

我知道我们可以使用 Kafka 或 JMS 而不是显式分区。 在我的用例中,我不想使用任何消息中间件。 因此,在将实例分配给每个记录之后。 我想调用这两个实例。 如何调用这两个实例?

你仍然需要一个消息中间件来实现远程分区。 这是管理步骤将StepExecutionRequest发送到工作步骤所必需的。

如果您真的想避免使用消息传递中间件,您可以为每个记录集创建一个作业实例。 根据您的示例,这可以设计如下:

  • 作业实例 1 -> Records1 和 Records2
  • 作业实例 2 -> Records3 和 Records4
  • ETC

这些作业实例可以在同一 JVM 的不同线程中本地执行,也可以在同一机器上的不同 JVM 中本地执行,或者在集群中的不同机器上远程执行。 并行度仅取决于集群中可用的资源。 您可以在一台机器上拥有多个 JVM,其中每个 JVM 并行运行多个作业实例。 然后,您可以在不同的机器上复制该设置,并根据您的要求实现高水平的并行性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM