Spring Cloud Task 1.0.1.RELEASE 现已发布

发布 | Michael Minella | 2016 年 7 月 11 日 | ...

我们很高兴地宣布 Spring Cloud Task 1.0.1.RELEASE 版本现已发布。这是 Spring Cloud Task 推荐的 GA(通用可用)版本,可通过 Maven Central 和其他常规渠道获取。

我们是如何走到这一步的?

Spring Cloud Task 是 Spring 组合中数据应用程序演进过程中的一步。在发布此版本之际,回顾我们走到这一步的过程可能会有所帮助。

始于 Spring Batch

基于 Spring 组合,此类有限工作负载的演进实际上始于 Spring Batch。Spring Batch 作为 Spring 框架最重要的特定工作负载的扩展,提供了以企业友好方式执行有限处理量的功能。它提供了多种处理模型(Tasklet 对比 Chunk)以及可扩展性选项,允许优化单 JVM 内和使用多个 JVM 的数据处理。多年来,Spring Batch 一直是 JVM 上有限处理的标准代表。

介绍 Spring XD

Spring XD 是 Spring Cloud Task 演进的下一步。Spring XD 提供了在分布式环境中编排 Spring Batch 作业的能力。然而,Spring XD 虽然为批处理作业的编排提供了出色的工具,但也让我们认识到需要一个比作业更抽象的工具。放眼大数据世界(以及更广泛的领域)的用例,许多都不需要批处理作业的开销,因此强行采用该模型来处理流程并不合理。这让我们开始思考...

审视现代运行时

将 Spring XD 重构为 Spring Cloud Data Flow 也为我们提供了一些见解。在审视 Cloud FoundryMesosYARNKubernetes 等现代应用程序运行时时,我们发现其中大多数都为短期应用程序提供了设施。然而,用户与它们交互、跟踪结果等方式因运行时而异。在 Cloud Foundry 上,Diego 提供了任务的概念,但其结果是短暂的。在 YARN 上,有作业历史服务器,但可能已配置也可能未配置。Kubernetes 在作业完成后会保留 pod。

提供一种独立于平台的方式来构建有限数据微服务,并同时提供操作和功能特性,这将非常有用……

这引出了 Spring Cloud Task

Spring Cloud Task 的诞生源于这样一个理念:企业环境中存在一些无需长时间运行的应用程序即可执行的功能。

Spring Cloud Task 提供以下功能:

  • 简单的编程模型 - Spring Cloud Task 构建于 Spring Boot 之上,并为其提供了额外的功能。通过使用 @EnableTask 注解,无需额外代码即可获得 Spring Cloud Task 的功能。
  • 任务存储库 - Spring Cloud Task 提供了以独立于平台的方式监视和记录任务结果的能力。因此,无论您使用的是裸金属、Cloud Foundry、Kubernetes、Mesos 等,操作任务的方式都保持一致。
  • 扩展点 - Spring Cloud Task 提供了通过监听器扩展任务的能力。这允许您在任务之前和之后执行逻辑,以及在出现问题时执行逻辑。
  • 与 Spring Batch 集成 - 将 Spring Batch 作业作为 Spring Cloud Task 运行,可以通过 Spring Cloud Data Flow 在运行时动态管理。Spring Cloud Task 提供了将批处理作业作为独立的任务运行,或者通过 Spring Cloud Data Flow 进行编排的能力,从而在您的环境中提供更大的弹性,而无需让作业在容器中等待执行。Spring Cloud Task 还提供了一个 PartitionHandler,允许将工作进程作为分区作业的任务启动。
  • 与 Spring Cloud Stream 集成 - Spring XD 提供了通过消息启动和监视作业的能力。Spring Cloud Task 将这些相同的功能带给开发人员,而没有 XD 容器的影响。通过在类路径上包含正确的依赖项,Spring Cloud Task 能够使任务和作业(作为任务运行)发出信息性消息,并能通过 Spring Cloud Stream 通过消息启动任务。

1.0.1.RELEASE 版本有哪些新功能?

上面提到的所有主要功能在 1.0.0.RC1 版本中就已经可用,您可以在此处阅读相关信息。此版本的主要变化在于依赖项进行了重构,因此,您不再需要同时包含 spring-cloud-task-core 和所需的其他任务模块,现在只需包含 spring-cloud-task-starter 依赖项以及您想要的用于获取预期功能的其他 Spring 模块。

例如,如果开发人员想编写一个作为任务运行的批处理作业,那么以前需要在 pom 文件中包含 spring-cloud-task-corespring-cloud-task-batchspring-boot-starter-batch,而现在只需要 spring-cloud-task-starterspring-boot-starter-batch。批处理功能将自动为您引导(并提供简单的覆盖选项,如同所有 Boot 自动配置一样)。

未来展望

Spring Cloud Task 现在已正式发布,我们非常期待您的反馈。我们的短期重点将是改进 Spring Cloud Task 与 Spring Cloud Data Flow 及其支持的运行时的互操作性。此外,我们期待在下方的评论区、其他在线渠道(如 StackOverflowTwitter)以及在下个月的 Spring One Platform 大会上听到您的声音!

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有