Spring Cloud Data Flow 1.7 GA 发布

发布 | Mark Pollack | 2018年10月25日 | ...

Spring Cloud Data Flow 团队很高兴宣布发布 1.7.0。请按照以下《入门指南》进行操作:本地服务器Cloud FoundryKubernetes。请期待在未来几周内更新的用于 SCDF 的 Cloud Foundry Tile 发布。

主要亮点如下

  • 改进的用户界面

  • 流应用程序 DSL

  • 审计跟踪

  • 并发任务启动限制

  • 流和任务验证

  • 强制升级流

  • 在 Kubernetes 上进行任务调度

改进的用户界面

用户界面焕然一新。导航从选项卡转移到了左侧导航系统。这为使用 Flo 设计器创建流提供了更多的屏幕空间,通过最小化左侧导航还可以获得更多空间。新增了快速搜索功能,可以搜索所有不同的 Data Flow 类别。还添加了更多颜色和整体主题更改,使界面看起来更加生动。在更深层的核心部分,路由管理得到了改进,我们使用 BrowserStack/SauceLabs 增加了端到端测试覆盖率。属性白名单功能也得到了改进,如果白名单为空,默认情况下不会显示所有应用程序属性。请查看视频了解用户界面的详细介绍。

流应用程序 DSL

并非所有用例都可以通过线性管道解决,即数据从源流经处理器到达 sink,并且每个应用程序通过单个目标连接。某些用例需要一组具有多个输入和输出的应用程序。Spring Cloud Stream 通过使用用户定义的绑定接口支持这种拓扑结构,但在 Data Flow 中不受支持。在 Kafka Streams 应用程序中拥有多个输入和输出也很常见。

此外,并非所有用例都使用 Spring Cloud Stream 应用程序解决。一个向 Kafka 或 RabbitMQ 应用程序发送同步请求/回复消息的 http 网关应用程序可以仅使用 Spring Integration 编写。

在这些情况下,Data Flow 无法假定数据从一个应用程序流向另一个应用程序的方式,因此无法像使用流管道 DSL那样设置应用程序的目标属性。

为了解决这些用例,我们引入了流应用程序 DSL。这个 DSL 使用逗号而不是管道符号来表示 Data Flow 不应配置应用程序的绑定属性。相反,开发人员需要设置适当的部署属性来“连接”应用程序。以下是使用EIP Cafe 示例领域的 DSL 示例:

dataflow:> stream create --definition "orderGeneratorApp, baristaApp, hotDrinkApp, coldDrinkApp" --name myCafeStream

其中 DSL 中列出的应用程序需要注册为 --type app

在这个流中,baristaApp 有两个输出目标,分别供 hotDrinkAppcoldDrinkApp 使用。部署流时,设置目标属性,以便目标与所需的数据流匹配,例如:

app.baristaApp.spring.cloud.stream.bindings.hotDrinks.destination=hotDrinksDest app.baristaApp.spring.cloud.stream.bindings.coldDrinks.destination=coldDrinksDest app.hotDrinkApp.spring.cloud.stream.bindings.input.destination=hotDrinksDest app.coldDrinkApp.spring.cloud.stream.bindings.input.destination=coldDrinksDest

这里有一个视频展示了这项功能。

审计跟踪

为了帮助回答“谁在何时做了什么?”的问题,引入了审计跟踪功能,用于存储涉及调度、流和任务的操作。对于应用程序和调度,会审计创建和删除操作。对于流,会审计创建、删除、部署、取消部署、更新和回滚操作。对于任务,会审计创建、启动和销毁操作。审计信息可在用户界面中查询。在 shell 中访问审计信息的功能即将推出。

Audit Dashboard

并发任务启动限制

Spring Cloud Data Flow 允许您强制限制并发运行任务的最大数量,以防止计算资源饱和。此限制可以通过设置 spring.cloud.dataflow.task.maximum-concurrent-tasks 属性来配置。默认值为 20。您还可以通过 REST 端点 /tasks/executions/current 获取当前正在执行的任务数量。一个新的tasklauncher-dataflow 应用程序利用此功能,仅在并发任务数量低于最大限制时才启动任务。此功能也是正在开发的新 FTP 摄取示例应用程序的核心。在面向数据密集型应用的云原生模式 网络研讨会中可抢先预览。

流和任务验证

新的 shell 命令 stream validatetask validate 将验证流或任务应用程序资源是否有效且可访问。这可以避免在部署时出现异常。使用用户界面进行验证的功能即将推出。

强制升级流

使用原力! 升级流时,您现在可以使用 --force 选项来部署当前已部署应用程序的新实例,即使应用程序或部署属性没有更改。当配置信息在应用程序启动时自行获取(例如从 Spring Cloud Config Server 获取)时,需要这种行为。您可以使用 --app-names 选项指定要强制升级的应用程序。如果您未指定任何应用程序名称,则所有应用程序都将强制升级。您可以将 --force--app-names 选项与 --properties--propertiesFile 选项一起指定。

在 Kubernetes 上进行任务调度

任务调度在 Data Flow 1.6 中针对 Cloud Foundry 引入。此版本增加了对在 Kubernetes 上调度任务的支持。

下一步是什么

1.7 版本将是 1.x 系列的最后一个次要版本。我们将着手开发 2.0 版本,该版本将移除“经典”模式并升级到基于 Boot 2.1 的技术栈。还计划了其他功能,敬请期待。在此期间,敬请关注一些博客文章,讨论使用 SCDF 进行 FTP 文件摄取、与 Python 的互操作性以及基于 Spring Cloud Function 的应用程序组合。

保持联系…​

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

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

近期活动

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

查看全部