批处理作业的扩展与并行处理
在批处理作业中,为了提高性能,我们常常会用到扩展技术。扩展主要分为水平扩展和垂直扩展两种方式。
扩展概念
水平扩展时,计算机不一定需要像垂直扩展那样强大的性能。水平扩展通常会集成负载均衡、复制和远程扩展等机制,并且可以借助网格计算和云计算来实现远程处理。
Spring Batch扩展模型
Spring Batch提供了一个通用框架来支持批处理作业概念,默认情况下,它会按顺序执行所有作业。而扩展则定义了如何在本地或其他机器上并行执行处理。扩展主要发生在步骤级别,我们可以选择不同的策略来决定在哪个级别拆分处理,比如并行化整个步骤或仅部分处理,也可以定义数据集并在本地或远程并行处理。
Spring Batch提供的扩展策略如下表所示:
| 策略 | 本地/远程 | 描述 |
| — | — | — |
| 多线程步骤 | 本地 | 一个步骤采用多线程处理 |
| 并行步骤 | 本地 | 使用多线程并行执行步骤 |
| 远程分块 | 远程 | 将分块处理分发到远程节点 |
| 分区步骤 | 本地和远程 | 对数据进行分区并拆分处理 |
Spring Batch支持本地和远程扩展。本地扩展通过Spring任务执行器抽象使用多线程,无需高级配置,指定后在执行步骤时会自动进行多线程处理。远程扩展则更复杂,需要像Java消息服务(JMS)或GridGain这样的远程技术,并使用Spring Batch钩子将扩展插入批处理中,虽然配置和使用更复杂,但可提供更高的可扩展性。
Spring任务执行器抽象
Sp
超级会员免费看
订阅专栏 解锁全文
1078

被折叠的 条评论
为什么被折叠?



