Spring 批处理:不使用 jms 的远程分块和分区

Spring Batch : Remote Chunking & Partitioning without using jms

我是 spring 批次的新手。我想 运行 spring 在不使用 jms 的情况下在多台服务器上使用远程分块和分区技术来批处理作业。 我想使用 HTTP Invoker 或 RMI 而不是使用 jms。 但是,所有远程分块和分区的示例都使用 jms。 我找不到使用 HTTP Invoker 或 RMI 的示例。 请问有没有可能..

英语不是我的母语。请原谅我的任何错误

您可以使用您想要的任何形式的通信来进行远程分区。但是,远程分块确实需要持久通信,这就是通常使用 JMS 的原因。

您之所以看到用于远程分区的 JMS,是因为使用 JMS 配置集群环境比使用 HTTP 更容易。这样做的原因是每个人(主人和所有奴隶)只需要知道队列要与哪里交谈。使用 HTTP 作为通信机制需要主从了解更多。 master 需要知道如何在所有 slave 上平均分配分区以及将请求发送到每个 slave 的位置。所有的奴隶也需要知道主人在哪里。 JMS 的集中分布模型还允许您在处理过程中动态添加新的从站,而 HTTP 会要求您通过某种方式向主站注册一个新的从站。

远程分块需要持久通信的原因是远程分区模型中没有任何东西可以防止一个项目被处理两次,因为它是通过网络发送的(远程分区只是发送数据的描述和作业存储库防止数据被处理两次)。

您可以在我的回答中详细了解两者之间的区别:Difference between spring batch remote chunking and remote partitioning