0

我们一直在以下用例中使用 Spring Batch

  1. 从文件中读取数据,处理并写入目标数据库(文件到达时开始批处理)
  2. 从远程数据库读取数据,处理并写入目标数据库(按预定时间间隔运行,由 Autosys 触发)

由于计划将所有在线应用程序迁移到 spring-boot 微服务和 PCF,我们正在考虑在批处理方面进行类似的练习,如果它可以增加价值。

在新世界中,spring cloud 批处理作业任务将从 S3 存储(ECSS3)读取文件。
我在这里寻找好的设计(尽可能远离过多的管道/过滤器和编排),输入数据范围从 1MM 到 20MM 记录

  1. ECSS3 将通过发送 http 请求来通知文件到达,工作流将是 - could stram httpsource->launch could 批处理作业任务,该任务将从对象存储中读取,处理并将记录保存到目标数据库
  2. 从 PCF 调度程序触发的 Spring Cloud Job Task 从远程数据库读取,处理并保存到目标数据库

通过上面的设计,我看不到将spring批处理作业包装成云任务并在带有spring数据流的PCF中运行的价值

我在这里错过了什么吗?在这种情况下,PCF/SpringClouldDataFlow 是不是有点矫枉过正?

4

1 回答 1

0

在云环境中编排批处理作业可以为解决方案带来新的好处。例如,PCF 支持的弹性模型可能很有用。Spring Cloud Task (SCT) 通常在一个短期容器中运行;如果它出现故障,PCF 会重新启动并在其中运行。

上面列出的两个选项都是可行的,它取决于您处理传入数据的频率的用例。它真的是实时的,或者它可以按计划愉快地运行,这是您必须确定才能做出决定的事情。

至于 Spring Cloud Data Flow (SCDF) + PCF 的适用性,同样取决于您的业务需求。您现在可能不会使用它,但Spring Batch Admin 已停产,支持 SCDF 的 Dashboard。以下问题可能有助于实现 SCDF + SCT 的价值主张。

您是否必须监控整个批处理作业的状态、进度和运行状况?也许您需要将多个批处理作业组装为DAG?如何在视觉上组合一系列任务并完全从仪表板进行编排?

此外,当批处理作业与 SCT、SCDF 和 PCF 调度程序一起使用时,您将受益于从 PCF 应用程序管理器监控所有这些。

于 2017-11-04T16:11:08.470 回答