加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使现有的Spring Batch Application在多个节点上运行

发布时间:2020-12-14 19:36:36 所属栏目:Java 来源:网络整理
导读:我们现有 Spring Batch Application,我们希望它可以在多个节点上运行. Spring Batch的scalabilty文档涉及代码更改和配置更改. 我只是想知道这是否可以通过配置更改来实现(添加新类并在配置中连接它很好但只是想避免对现有类的代码更改). 非常感谢您的帮助.
我们现有 Spring Batch Application,我们希望它可以在多个节点上运行.

Spring Batch的scalabilty文档涉及代码更改和配置更改.

我只是想知道这是否可以通过配置更改来实现(添加新类并在配置中连接它很好但只是想避免对现有类的代码更改).

非常感谢您的帮助.

解决方法

这真的取决于你的情况.具体来说,为什么要在多个节点上运行?你试图克服的瓶颈是什么? Spring Batch为在多个节点上进行扩展而开箱即用的典型两种方案是远程分块和远程分区.两者都是主/从配置,但每个都有不同的用例.

当步骤中的处理器是瓶颈时,使用远程分块.在这种情况下,主节点读取输入并通过Spring Integration通道将其发送到远程节点进行处理.处理完项目后,结果将返回给主程序进行写入.在这种情况下,读取和写入在本地完成.虽然这有助于并行化处理,但它需要I / O命中,因为每个项目都是通过线路发送的(并且需要保证传送,例如ala JMS).

远程分区是另一种情况.在这种情况下,主设备生成要为每个从设备处理的输入的描述,并且仅通过线路发送该描述.例如,如果您正在处理数据库中的记录,则主服务器可以向每个从服务器发送一系列行ID(1-100,101-200等).读取和写入发生在奴隶的本地,并且不需要保证交付(尽管在某些情况下有用).

根据您的使用情况,这两个选项都可以使用最少(或没有)新类完成.有几个不同的地方可以查找有关这些功能的信息:

> Spring Batch Integration Github存储库 – Spring Batch Integration是支持上述用例的项目.你可以在这里阅读更多相关信息:https://github.com/spring-projects/spring-batch-admin/tree/master/spring-batch-integration
>我的远程分区示例 – 此讨论通过远程分区进行,并提供了一个在CloudFoundry上运行的工作示例(目前仅适用于CF v1,但CF2的更新将在几天内发布).配置几乎相同,只有Rabbit的连接池不同:https://github.com/mminella/Spring-Batch-Talk-2.0此演示文稿的视频可在YouTube上找到:http://www.youtube.com/watch?v=CYTj5YT7CZU
> Gunnar Hillert关于Spring Batch和Spring Integration的演讲:这是在SpringOne2GX 2013上展示的,包含了许多例子:https://github.com/ghillert/spring-batch-integration-sample

在任何这些情况下,远程分块都应该可以通过零新类来完成.远程分区通常要求您实现一个新类(分区程序).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读