java - Spring批处理远程分块和远程分区之间的区别

spring批处理远程分 block 和远程分区有什么区别?

我无法理解 Spring Batch 中远程分 block 和远程分区之间的区别。谁能解释一下?

最佳答案

远程分区

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

远程分区注意事项:

  • 输入和输出对于从站来说是本地的。例如,如果输入是一个文件,那么从属设备需要访问该文件。
  • 从站需要访问 JobRepository。从站是完全定义的 Spring Batch 步骤,因此它们需要 JobRepository 访问权限。

远程分 block

远程分 block 类似于远程分区,因为它是主/从配置。然而,对于远程分 block ,数据由主机读取并通过线路发送到从机进行处理。处理完成后,ItemProcessor的结果返回给master写入。

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

  • 所有 I/O 都由主设备完成。
  • slave 只处理处理,因此不需要 JobRepository 访问权限。
  • 远程分 block 比远程分区更密集 I/O,因为实际数据是通过网络发送的,而不是描述它的元数据。

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

https://stackoverflow.com/questions/20323229/

相关文章:

java - 多语言数据库,默认回退

java - cvc-complex-type.2.4.c : The matching wildc

java - 非法状态异常 : Cannot find changelog location: cl

java - Spring jsp页面未评估

java - 在 Spring 注解中使用静态变量

json - Spring 3.2RC1 中来自 JodaTime 的 jackson2 JSON

java - 依赖注入(inject) servlet 监听器

java - 关于 Spring web.xml

java - 我应该把我的 ThreadLocals 放在一个 Spring 注入(inject)的

java - Spring 3中@Component和@Configuration的区别