【问题标题】:Should I use Spring Data flow server for my new Spring Batch jobs?我应该为我的新 Spring Batch 作业使用 Spring Data 流服务器吗?
【发布时间】:2020-07-26 11:51:59
【问题描述】:

我需要创建大约 10 个 Spring Batch 作业,其中包括一个读取器和一个写入器。所有读取器从一些不同的 Oracle DB 读取数据并写入不同的 Oracle Db(源和目标服务器不同)。 Spring 作业是使用 Spring Boot 实现的。此外,所有 10 多个作业都将打包到一个 Jar 文件中。到目前为止还不错。

现在客户还需要一些 UI 来监控作业状态并充当作业组织者。我浏览了 Spring Data flow Server 文档以了解 UI 要求。但我不确定它是否能达到目的,或者是否有任何其他替代选项可用于监控作业状态,在 UI 需要时停止和启动作业。

此外,如果这是 UI 的唯一选项,我如何将 10 多个作业分隔在 Spring Data Flow Server 中的单个 Jar 中。

提前致谢。

【问题讨论】:

    标签: java spring spring-boot spring-batch spring-cloud-dataflow


    【解决方案1】:

    我没有添加评论的声誉。所以,我在这里发布答案。虽然我知道这不是分享参考链接作为答案的方式。

    这可能会帮助您: spring-batch-job-monitoring-with-angular-front-end-real-time-progress-bar

    【讨论】:

    • 嗨,应用程序很整洁。感谢您发布。我不确定我们是否需要进度条,但它提供了另一种方式。
    【解决方案2】:

    Spring 批处理作业的可观察性由框架在关系数据库中持久保存的数据给出...实例..执行..时间戳...读取计数..写入计数.... 您有不同的方式来利用这些数据。 SQL 客户端、JMX、spring batch api(JobExplorer、JobOperator)、spring admin(为了支持云数据流服务器而弃用)。

    数据流是一个协调器,允许您使用流和任务(有限和短期/受监控的服务)执行数据管道。对于您的工作,我们可以想象将每个工作包装在任务中并创建一个多任务管道。数据流为您提供每次执行的状态。 例如,您还可以通过将监控数据作为指标推送到 influxDb 中来公开监控数据...

    【讨论】:

    • 感谢您的意见。还用任务包装每个作业(使用 @EnableBatchJobProcessing 为每个作业使用单独的 Java 类)意味着,你想让我为每个批处理作业类添加 @EnableTask 吗?
    • 我不知道您的工作定义,但如果您的工作包含在任务中,您可以考虑将您的整体批处理拆分为分布式批处理...因此您可以利用可重用性和远程处理(分块/分区)...是的,您需要@EnableTask@EnableBatchProcessing。看看这个:docs.spring.io/spring-cloud-task/docs/current/reference/#batch
    猜你喜欢
    • 1970-01-01
    • 2010-09-09
    • 2014-12-24
    • 2019-06-09
    • 2020-09-24
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多