Spring Batch的scalabilty文档涉及代码更改和配置更改.
我只是想知道这是否可以通过配置更改来实现(添加新类并在配置中连接它很好但只是想避免对现有类的代码更改).
非常感谢您的帮助.
解决方法
当步骤中的处理器是瓶颈时,使用远程分块.在这种情况下,主节点读取输入并通过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
在任何这些情况下,远程分块都应该可以通过零新类来完成.远程分区通常要求您实现一个新类(分区程序).