gpt4 book ai didi

spring - 如何使用 Spring Cloud Task 动态部署独立 Spring 批处理

转载 作者:行者123 更新时间:2023-12-02 06:34:35 24 4
gpt4 key购买 nike

我们计划淘汰现有的旧版 Java 批处理应用程序,并使用最新的可用批处理框架重新创建它。鉴于我们有大量批处理作业需要现代化,我们正在寻找一个框架或架构,使我们能够

  1. 开发一个批处理解决方案,使我们能够在创建新批处理时动态部署它们,而不会干扰现有已部署的应用程序。 - Spring cloud Task 是否提供任何此功能。注意:我们只想将应用程序部署到本地服务器,与云无关。
  2. 如果 Spring Batch/Boot 可以为我们提供我们通常期望批处理应用程序提供的功能,那么 Spring Cloud Task 的特殊值(value)是什么? - 我无法从网上提供的 Spring 文档中完全理解这一点。
  3. 从 Spring Cloud Task 的文档中,我了解到它允许应用程序在其中包含许多任务。如果每个任务都有自己的库依赖项,这可能与其他任务的依赖项相矛盾,我该怎么办?那么在这种情况下,这些任务是否应该转移到新的应用程序中,或者是否有解决方法?

最佳答案

回答您的问题:

  1. Spring Cloud Task 是否处理编排 - 否。Spring Cloud Task 不处理任务或作业的编排。这个生态系统中处理任务或作业的部署/编排的组件实际上是 Spring Cloud Data Flow(这就是为什么我问您是否使用任何类型的云平台,包括 YARN、Cloud Foundry、Kubernetes 或 Mesos...环境由 Spring Cloud Data Flow 支持)。
  2. Spring Cloud Task 相对于 Spring Boot/Spring Batch 提供了哪些附加值 - Spring Cloud Task 旨在提供以下功能:
    1. 在状态管理方面与 Spring Batch 类似,无需创建批处理作业。在云环境中运行 Boot 应用程序时,没有标准方法可以从一个环境中获取结果(YARN 处理作业结果的方式与 Cloud Foundry 上的任务不同,而 Cloud Foundry 上的任务与 Kubernetes 上的作业不同,等等)。 Spring Batch 提供了此功能,但现在所有短期进程都需要 Batch API 的开销,因此 Spring Cloud Task 为这些用例提供了更轻松的接触。
    2. 自动添加信息监听器。使用 Spring XD,当您在 XD 容器中运行作业时,XD 容器会自动添加许多信息监听器,这些监听器广播您可以监听的事件。 Spring Cloud Task 带来了相同的功能,而无需 XD 容器。
    3. 与 Spring Cloud Stream 集成。Spring Cloud Task 提供了从 Spring Cloud Stream 收到的消息启动任务的功能。此外,前面提到的信息性消息(批处理事件和任务事件)都是通过 Spring Cloud Stream channel 发送的。
    4. DeployerPartitionHandler在云环境中工作时,此 PartitionHandler 实现允许您将分区批处理作业的工作线程作为任务启动。这允许动态扩展分区批处理作业,而不是传统的预部署工作线程来监听工作的选项,这会在现代云环境中浪费资源。
  3. 多个任务的打包如何与依赖一起工作 - 简而言之,不建议这样做。 Spring Cloud Task 的思想是 Spring Boot 应用程序的执行就是任务。虽然您可以打包多个任务并使用不同的方法,让它们根据不同的刺激执行,但这违背了正确使用 Spring Cloud Task 所必需的 12 因素应用程序概念。

我的两分钱
对于现代批处理平台的最佳选择,您确实需要首先研究平台的一些方面,并从 Cloud Foundry/Kubernetes/Mesos/YARN 层开始。如果没有这个,您最终将自己构建大部分基础设施。这就是 Spring XD 演变为 Spring Cloud Data Flow 的原因。 Spring XD 容器中增加的复杂性通过需要运行现代平台而被消除(因为它们都自己处理这些保证)。如果没有这一部分,您将花费大量时间来管理大多数现代平台为您处理的应用程序的部署和编排。

从这里开始,选择变得非常容易,恕我直言,使用 Spring Cloud Task 来执行简单任务,使用 Spring Batch 执行批处理作业,使用 Spring Cloud Data Flow 执行编排。

关于spring - 如何使用 Spring Cloud Task 动态部署独立 Spring 批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38448411/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com