我想在多 JVM 实例(每个实例位于不同的机器上)中运行 Spring Batch,并使用 SQS 作为主/工作 JVM 之间的消息通道(远程分区)。
一旦主节点将分区移交给通道(对于工作线程),我计划关闭主步骤,这样它就不会消耗资源(因此这不是一个长时间运行的任务)。一旦工作完成,我将重新启动master来完成工作。
我的做法正确吗?可能存在哪些陷阱?
这种做法是不正确的。这确实不是您应该寻求优化的地方。经理负责收集工人的回复并协调他们的状态,因此必须直到工人完成(成功或失败)为止。