Spring Cloud Task 1.0.1.RELEASE 现已发布

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

我们很高兴地宣布发布 Spring Cloud Task 1.0.1.RELEASE。这是 Spring Cloud Task 推荐的 GA (General Availability) 版本,可以从 Maven Central 以及其他常用位置获取。

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

Spring Cloud Task 是 Spring 产品组合中数据应用演进的一个步骤。在我们宣布此版本时,回顾一下我们是如何走到这一步的可能会有所帮助。

它始于 Spring Batch

这类有限工作负载的演进始于 Spring Batch,它构建在 Spring 产品组合之上。作为 Spring 框架的主要工作负载特定扩展之一,Spring Batch 提供了一种企业友好的方式来执行有限量的处理。它具有多种处理模型(Tasklet vs 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 上,有 Job History Server,可能已配置,也可能未配置。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,允许为分区作业启动 worker 作为任务。
  • 与 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 现已全面可用 (GA),我们很高兴听取您的意见。我们的短期重点是改进 Spring Cloud Task 与 Spring Cloud Data Flow 及其支持的运行时的互操作性。同时,我们期待听到您在下方评论区、StackOverflowTwitter 等在线平台以及下个月 Spring One Platform 上的当面交流!

订阅 Spring 电子报

通过 Spring 电子报保持联系

订阅

领先一步

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

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举办的活动

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

查看全部