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