Spring批量远程分块和远程分区之间的区别

jav*_*ner 14 java spring spring-batch

spring批量远程分块和远程分区有什么区别?

我无法理解Spring批处理中远程分块和远程分区之间的区别.有人可以解释一下吗?

Mic*_*lla 39

远程分区

分区是主/从步骤配置,允许并行处理数据分区.通过一些元数据描述每个分区.例如,如果您正在处理数据库表,则分区1可能为0-100,分区2为101-200等.对于Spring Batch,主步骤使用分区程序生成包含每个分区的元数据的ExecutionContexts.这些ExecutionContexts被分配到从属步骤以供PartitionHandler处理(对于远程分区,通常使用MessageChannelPartitionHandler).从设备执行其步骤并返回由主设备进行聚合的结果状态.

有关远程分区的注意事项:

  • 输入和输出是从站的本地输出.例如,如果输入是文件,则从属设备需要访问该文件.
  • 从属需要访问JobRepository.Slaves是完全定义的Spring Batch步骤,因此需要JobRepository访问.

远程分块

远程分块类似于远程分区,因为它是主/从配置.但是,通过远程分块,数据由主设备读取并通过线路发送到从设备进行处理.处理完成后,ItemProcessor的结果将返回给master进行写入.

关于远程分块的注意事项:

  • 所有I/O都由主站完成.
  • 从服务器仅处理处理,因此不需要JobRepository访问.
  • 远程分块比远程分区更加I/O密集,因为实际数据是通过线路发送的,而不是描述它的元数据.

我做了一个关于扩展Spring Batch的演讲,并做了一个你可以在这里观看的远程分区演示:http://www.youtube.com/watch?v = CYTj5YT7CZU