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 中,我们提供了独立更新源、处理器和接收器而不必取消部署和重新部署整个流的功能。

流更新和回滚功能是通过将部署过程委托给一个名为 Skipper 的新的 Spring Cloud 项目来实现的。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

在此系列命令中,流使用 transformer 的 0.0.1 版本进行部署。jdbcmongodb 源和接收器已注册。然后将流更新为使用 transformer 的 0.0.2 版本。仅更新 transform 应用程序,部署 0.0.2 版本,取消部署 0.0.1 版本。jdbcmongodb 应用程序保持不变。回滚命令执行相反的操作,将流恢复到 transformer 为 0.0.1 版本的状态。

注意:要使用 Data Flow 和 Skipper,必须在 Data Flow Server 和 shell 中启用 Data Flow 的 Skipper 功能切换

JavaDSL

DataFlowTemplate 类一直是以编程方式部署流和任务的主力军。但是,它是一个相当底层的 API。我们添加了一个新的流畅风格的 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 仪表板已更新为利用 Angular 4 并与 Pivotal UI 样式保持一致。主要重点是始终如一地使用域模型类而不是纯 JSON 字符串。这允许更细粒度地控制应用程序的状态,例如在从分页列表转换到详细信息页面并返回时。使用 CompodocUI 文档 也有所改进。

扇入和扇出可视化

扇入是指多个源都将数据发送到同一消息传递目标。扇出是指在运行时确定消息传递目标。此视频显示了具有这些拓扑结构的流的 UI 实际效果。

有一个新的 UI 控件可直接从特定节点分支到 "分支流",以及另一个新的 UI 控件来管理 命名目标。这些新功能使构建复杂的流拓扑变得更加容易。

应用程序注册表改进

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

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

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

Shell 改进

此版本为流和任务/批处理名称以及其他元数据添加了“自动完成”功能。无需再猜测 - 所有内容都可以通过按 Tab 键访问!请查看以下 屏幕截图,以了解有关高级 Shell 功能、提示和技巧的更多信息。

函数运行器

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"

您可以使用一个示例来体验此功能。简化 Spring Cloud Functions 的部署,使其无需用户显式调用 function-runner,这一目标已列入我们的路线图。

应用程序

MQTT 源MQTT 宿 应用程序可以与 IoT 设备交互。

TensorFlow 处理器 可以帮助进行实时预测模型评估。查看其Twitter 情感 模型预测的使用案例,以获得一些了解。

为了增强数据科学功能,现在还提供了 Python-HTTP 和 Python-Jython 处理器。

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

简化 Spring Cloud Functions 的部署,使其无需用户显式调用 function-runner,这一目标已列入我们的路线图。

适用于 PCF 的 Spring Cloud Data Flow 磁贴

Spring Cloud Data Flow 的 Cloud Foundry 磁贴在过去几个月一直处于封闭 Beta 状态。我们根据客户和现场反馈进行了迭代,并准备将其从 Beta 升级到正式的 1.0 GA 状态。此版本自动化了配置(包括指标收集器、Skipper、数据库和消息代理),并在 Cloud Foundry 中实现了端到端 OAuth/SSO 集成。还有许多其他增值功能,敬请关注更集中的讨论、文档 以及指向 Pivotal Network 中磁贴页面的指针

Kubernetes 的 Helm Chart

一旦拉取请求合并,Spring Cloud Data Flow 的 helm chart 将更新到最新的 1.3 GA 版本。使用此 chart,可以自动配置最新版本的 SCDF 以及配套组件(指标收集器、Skipper、数据库和消息代理),只需使用以下 helm 命令。

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

与往常一样,我们欢迎您的反馈和贡献,请在StackoverflowGitHub 或通过Gitter 与我们联系。

请试用一下,分享您的反馈,并考虑为该项目做出贡献!

获取 Spring 时事通讯

随时关注 Spring 时事通讯

订阅

走在前沿

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部