【问题标题】:Difference between spring batch remote chunking and remote partitioningSpring批处理远程分块和远程分区之间的区别
【发布时间】:2013-12-17 20:41:16
【问题描述】:

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

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

【问题讨论】:

标签: java spring spring-batch


【解决方案1】:

远程分区

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

远程分区注意事项:

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

远程分块

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

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

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

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

【讨论】:

  • 谢谢迈克尔米内拉
  • 我们可以使用 REST 调用代替 JMS 在主从之间进行通信吗?
  • 对于远程分区,是的,您可以使用 REST 调用进行通信。
  • @Michael Minella 你能提供远程分区的主从之间的 REST 通信示例吗?
  • 为什么slave不能做I/O?即master向slave发送一批数据,slave进行一些处理,然后将结果插入到db中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 2019-04-15
  • 1970-01-01
  • 2021-09-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多