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进行部署。jdbcmongodb源和汇已经注册。然后,流更新为使用转换器版本0.0.2。只有transform应用程序被更新,部署版本0.0.2并卸载版本0.0.1。jdbcmongodb应用程序保持不变。回滚命令执行相反的操作,将流恢复到转换器版本0.0.1的状态。

注意:要使用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仪表板已更新以利用Angular 4,并与Pivotal UI样式保持一致。一个主要焦点是始终使用域模型类而不是纯JSON字符串。这允许对应用程序的状态进行更细粒度的控制,例如,从分页列表转换到详细信息页面再返回时。还有使用Compodoc的改进的UI文档

扇入和扇出可视化

扇入是指多个源都将数据发送到同一消息目的地。扇出是指在运行时确定消息目的地。此视频演示了具有这些拓扑的流的UI操作。

有一个新的UI控件可以直接从特定节点“tap a stream”,以及另一个新的UI控件来管理命名目的地。这些新功能使构建复杂的流拓扑变得更容易。

应用程序注册表改进

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

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

在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 Tile

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

Kubernetes的Helm Chart

一旦拉取请求合并Spring Cloud Data Flow的helm-chart将更新到最新的1.3 GA版本。通过此chart,最新版本的SCDF以及配套组件(metrics-collector、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

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

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

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有