spring批量远程分块和远程分区有什么区别?
我无法理解Spring批处理中远程分块和远程分区之间的区别.有人可以解释一下吗?
解决方法:
远程分区
分区是主/从步骤配置,允许并行处理数据分区.通过一些元数据描述每个分区.例如,如果您正在处理数据库表,则分区1可能为0-100,分区2为101-200等.对于Spring Batch,主步骤使用Partitioner生成包含每个分区的元数据的ExecutionContexts.这些ExecutionContexts被分配到从属步骤以供PartitionHandler处理(对于远程分区,通常使用MessageChannelPartitionHandler).从设备执行其步骤并返回由主设备进行聚合的结果状态.
有关远程分区的注意事项:
>输入和输出是从站的本地输出.例如,如果输入是文件,则从属设备需要访问该文件.
> Slaves需要访问JobRepository. Slaves是完全定义的Spring Batch步骤,因此需要JobRepository访问.
远程分块
远程分块类似于远程分区,因为它是主/从配置.但是,通过远程分块,数据由主设备读取并通过线路发送到从设备进行处理.处理完成后,ItemProcessor的结果将返回给master进行写入.
关于远程分块的注意事项:
>所有I / O都由主站完成.
>从站仅处理处理,因此不需要JobRepository访问.
>远程分块比远程分区更加I / O密集,因为实际数据是通过线路发送的,而不是描述它的元数据.
我做了一个关于扩展Spring Batch的演讲,并做了一个你可以在这里观看的远程分区演示:http://www.youtube.com/watch?v=CYTj5YT7CZU
标签:java,spring,spring-batch
来源: https://codeday.me/bug/20190923/1813425.html