【问题标题】:How do you distribute a spring batch job effectively across jvms?您如何在 jvm 之间有效地分配 Spring Batch 作业?
【发布时间】:2015-10-08 18:41:34
【问题描述】:

在工作中,我从文件中读取内容并将某些内容存储在数据库中。 我想在不同的进程中运行许多批处理作业的 jar,并将文件中的数据分区到正在运行的实例中。

我还希望能够继续添加要处理的文件并分发来自这些文件的读取。
我读过 spring xd 可能很合适,但找不到很好的教程。
是的,我也是春季批次和 xd 的菜鸟。

【问题讨论】:

标签: spring-batch spring-xd


【解决方案1】:

首先要了解的是如何对批处理作业进行远程分区。请参阅 batch documentation 了解 Spring Batch Integration 及其对远程分区的支持,基于基本的 batch partitioning。

Spring XD 为单步分区工作负载提供开箱即用的支持。

您只需导入 singlestep-partition-support.xml 并提供分区程序和 tasklet bean。请参阅XD Documentation for an example。

【讨论】:

  • 假设我有一个 spring boot 和 mvc jar 可以从控制器启动作业,它还具有远程分区;然后我可以简单地说'模块上传......--类型处理器'?之后我将如何部署更多实例?或者远程分区是否需要与任何 spring mvc 或 boot 完全分离才能作为“--type job”上传?
  • 否;它需要是 XD 作业模块并按原样上传,您在部署作业时确定实例数。您必须使用 XD 的作业启动机制。如果你在自己的战争中有一个分区作业,你可以简单地部署多个实例;但是您必须使用自己的基础架构(JMS、RabbitMQ 等)使用spring-batch-integration 项目中的示例代码将分区分配给工作实例。
  • 如果我想发送 json 数组作为 http 请求来启动作业,我必须添加一个源模块,然后将源链接到作业模块?
  • 是的; Launch job as a part of event flow 下有一个示例(向下滚动一点)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
  • 1970-01-01
  • 2019-06-09
  • 2014-10-15
  • 1970-01-01
  • 2014-12-24
  • 1970-01-01
相关资源
最近更新 更多