Spring Cloud Data Flow 1.3 GA 发布

发布 | Gunnar Hillert | 2018 年 2 月 1 日 | ...

我代表团队很高兴宣布 Spring Cloud Data Flow 1.3 已在多种平台上正式发布。

请参阅 本地服务器Cloud FoundryKubernetes 的入门指南。

发布亮点

流更新和回滚

流式数据管道作为一系列微服务应用进行编排,一直是 Spring Cloud Data Flow 设计的核心价值。在 Data Flow 1.3 中,我们提供了独立更新源、处理器和汇的能力,而无需卸载和重新部署整个流。

流的更新和回滚功能是通过将部署过程委托给一个新的 Spring Cloud 项目 Skipper 来实现的。Skipper 是一个轻量级的 Spring Boot 应用,专门构建用于填补 Data Flow 在此功能上的空白。Skipper 定义了一种包格式,很像 helmbrew,也可以将应用部署/卸载到多个云平台:本地、Cloud Foundry 和 Kubernetes。它使用了自 Data Flow 诞生以来就一直是其一部分的 Spring Cloud Deployer 库。在 SpringOne 2017 上的最新演示文稿 介绍了 Skipper 以及 与 Data Flow 的集成,提供了更深入的讲解。

部署流时,Data Flow 会创建一个描述流及其组成应用的 Skipper 包。然后 Skipper 将应用部署到所需平台。请求流更新时,只有需要更改的应用会自动重新部署。一个由 Spring Statemachine 实例管理的简单策略执行更新或回滚步骤。

Data Flow 包含新的流命令,用于执行升级和回滚操作。

dataflow:>app register --name transform --type processor --uri maven://com.eg:transformer:0.0.1

dataflow:>stream create mystream --definition "jdbc | transform | mongodb"

dataflow:>app register --name transform --type processor --uri maven://com.eg:transformer:0.0.2

dataflow:>stream update mystream --properties “version.transform=0.0.2”

dataflow:>stream rollback mystream

在这一系列命令中,流使用了 0.0.1 版本的 transformer 进行部署。jdbcmongodb 源和汇已经注册。然后流更新为使用 0.0.2 版本的 transformer。只有 transform 应用被更新,0.0.2 版本被部署,0.0.1 版本被卸载。jdbcmongodb 应用保持不变。回滚命令执行相反的操作,将流恢复到使用 0.0.1 版本 transformer 的状态。

注意:要使用 Data Flow 和 Skipper,必须在 Data Flow Server 和 shell 中同时启用 Data Flow 的 Skipper 功能开关

JavaDSL

DataFlowTemplate 类一直是程序化部署流和任务的主力。然而,它是一个相当底层的 API。我们添加了一个新的流畅风格 API 来创建、部署或启动流,它更易于使用,并且可以在多个流之间复用 StreamApplication 实例。

StreamApplication source = new StreamApplication("http") .addProperty("server.port", 9900);

StreamApplication processor = new StreamApplication("filter") .addProperty("expression", "payload=='good'");

StreamApplication sink = new StreamApplication("log");

Stream simpleStream = streamBuilder.name("simpleStream") .source(source) .processor(processor) .sink(sink) .create() .deploy();

使用 Stream 实例,您可以查询流的状态、卸载或销毁流。

参考指南的 Java DSL 部分 提供了对 DSL 更完整的介绍,Spring Data Flow Samples 仓库提供了一个 示例,供您在项目中开始使用它。

Angular 4

Data Flow Dashboard 已更新,以利用 Angular 4 并与 Pivotal UI 样式保持一致。一个主要关注点是持续使用领域模型类,而非直接的 JSON 字符串。这使得可以对应用程序状态进行更细粒度的控制,例如从分页列表过渡到详细信息页面再返回时。此外,还改进了使用 CompodocUI 文档

扇入和扇出可视化

扇入(Fan-in)指多个源都将数据发送到同一个消息目的地。扇出(Fan-out)指在运行时确定消息目的地。此视频展示了 UI 在具有这些拓扑结构的流中的实际应用。

新增了一个 UI 控件,可以直接从特定节点分支出去,用于 "tap 一个流",以及另一个新的 UI 控件,用于管理 命名目的地。这些新功能使得构建复杂的流拓扑结构更加容易。

应用注册改进

将应用程序注册为 Maven Artifact 的用户现在可以利用“update-policy”功能来覆盖并刷新 Spring Cloud Data Flow 的内部 Maven 缓存。例如,在开发中,您可以通过设置 update-policy=always 来持续解析 Maven Artifact 的 SNAPSHOT 版本,这将强制下载 DSL/Dashboard 中正在使用的流或批量/任务应用的最新版本。

根据用户反馈,使用 http 资源注册的应用将始终被下载而不进行缓存。这有助于开发生命周期中更新托管在 Web 服务器上的应用 uberjar 的代码(而非名称)。

在 Skipper 模式下,可以注册多个应用版本。部署流时使用默认版本。您可以使用新命令 app default 设置默认版本。然而,在流中升级应用版本时,必须先在 Data Flow 中注册该版本。

Shell 改进

此版本为流和任务/批量处理名称以及其他元数据添加了“自动补全”功能。无需猜测 - 只需按 TAB 键即可获得一切!查看以下 屏幕录像,了解更多关于高级 shell 功能、技巧和窍门的信息。

函数运行器

通过使用 function-runner 应用,SCDF 提供了对运行函数的初步支持。使用 Spring Cloud Function 应用创建流时,您需要传入函数的类名和 jar 位置。

dataflow:> stream create foo --definition "http | function-runner --function.className=com.example.functions.CharCounter --function.location=file:///home/john/myfunction.jar | log"

您可以使用一个示例来试验此功能。我们的路线图上包括通过不要求用户显式调用 function-runner 来简化 Spring Cloud Functions 的部署。

应用

MQTT sourceMQTT sink 应用可以与 IoT 设备交互。

TensorFlow 处理器 可以帮助进行实时预测模型评估。请查看其 Twitter 情感分析 模型预测用法,以了解其作用。

在数据科学能力的基础上,Python-HTTP 和 Python-Jython 处理器现已可用。

新的 bit.ly 链接 Celsius.SR1Clark.GA 可用于批量导入和注册 SCDF 中所有开箱即用的应用。

通过不要求用户显式调用 function-runner 来简化 Spring Cloud Functions 的部署,这已列入我们的路线图。

Spring Cloud Data Flow 的 PCF Tile

Spring Cloud Data Flow 的 Cloud Foundry Tile 在过去几个月一直处于封闭测试(closed-BETA)状态。我们根据客户和现场反馈进行了迭代,现已正式从 BETA 阶段毕业,达到 1.0 GA 状态。此版本自动化了配置过程(包括 metrics-collector、skipper、数据库和消息代理),并实现了 Cloud Foundry 中的端到端 OAuth/SSO 集成。还有许多其他增值功能,敬请关注更深入的讨论、文档以及 Pivotal Network 中 Tile 页面的指引。

Kubernetes 的 Helm Chart

一旦 Pull Request 被合并Spring Cloud Data Flow 的 Helm Chart 将更新到最新的 1.3 GA 版本。使用此 Chart,可以利用以下 Helm 命令自动配置最新版本的 SCDF 以及配套组件(metrics-collector、skipper、数据库和消息代理)。

helm repo add incubator http://storage.googleapis.com/kubernetes-charts-incubator helm repo update helm install --name scdf incubator/spring-cloud-data-flow --set rbac.create=tru

一如既往,我们欢迎反馈和贡献,请通过 StackoverflowGitHubGitter 与我们联系。

请尝试使用它,分享您的反馈,并考虑为项目做出贡献!

订阅 Spring 新闻通讯

保持与 Spring 新闻通讯的连接

订阅

保持领先

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

了解更多

获取支持

Tanzu Spring 在一项简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部