Spring Cloud Data Flow 1.7 M1 发布

发布 | Mark Pollack | 2018 年 9 月 18 日 | ...

Spring Cloud Data Flow 团队很高兴地宣布发布 1.7 M1。请遵循 本地服务器Cloud FoundryKubernetes入门指南。

亮点

  • 改进的用户界面

  • Stream Application DSL

  • 审计跟踪

  • 并发任务启动限制

  • Stream 和 Task 验证

  • Stream 强制升级

改进的用户界面

UI 焕然一新。导航已从选项卡迁移到左侧导航系统。这增加了使用 Flo 设计器创建流的屏幕空间,并且可以通过最小化左侧导航获得更多屏幕空间。新增了快速搜索功能,可跨所有不同的 Data Flow 类别进行搜索。增加了其他颜色和整体主题更改,使 UI 看起来更加生动。在核心深处,路由管理得到了改进,我们使用 BrowserStack/SauceLabs 增加了端到端测试覆盖率。

Stream Create

流应用程序 DSL

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

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

在这些情况下,Data Flow 无法假设数据从一个应用程序流向另一个应用程序,因此无法设置应用程序的目的地属性,正如使用 Stream Pipeline DSL 时所做的那样。

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

dataflow:> stream create --definition "orderGeneratorApp, baristaApp, hotDrinkDeliveryApp, coldDrinkDeliveryApp" --name myCafeStream

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

在此流中,baristaApp有两个输出目的地,分别 intended to be consumed by the hotDrinkDeliveryApp and coldDrinkDeliveryApp。部署流时,设置目的地属性,使目的地匹配所需的数据流,例如

app.baristaApp.spring.cloud.stream.bindings.hotDrinks.destination=hotDrinksDest app.baristaApp.spring.cloud.stream.bindings.coldDrinks.destination=coldDrinksDest app.hotDrinkDeliveryApp.spring.cloud.stream.bindings.input.destination=hotDrinksDest app.coldDrinkDeliveryApp.spring.cloud.stream.bindings.input.destination=coldDrinksDest

审计日志

为了帮助回答“谁在何时做了什么?”的问题,引入了审计日志来存储涉及应用程序注册、计划、流和任务的操作。对于应用程序和计划,会记录创建和删除操作。对于流,会记录创建、删除、部署、取消部署、更新和回滚操作。对于任务,会记录创建、启动和销毁操作。审计信息可在 UI 中查询。即将支持通过 shell 访问审计信息。

Audit Dashboard

并发任务启动限制

Spring Cloud Data Flow 允许您强制执行并发运行任务的最大数量,以防止计算资源过载。可以通过设置spring.cloud.dataflow.task.maximum-concurrent-tasks属性来配置此限制。默认值为 20。您还可以通过 REST 端点/tasks/executions/current检索当前并发执行的任务数量。新的 tasklauncher-dataflow 应用程序利用此功能,仅在并发任务数量低于最大值时才启动任务。此功能也是正在开发的新的 FTP ingest 样本应用程序的核心。可以在 Cloud-native patterns for Data-intensive applications 网络研讨会中一窥。

流和任务验证

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

强制升级流

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

保持联系……

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

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有