Spring Cloud Data Flow 1.7 GA 版本发布

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

Spring Cloud Data Flow 团队高兴地宣布发布1.7.0版本。请遵循针对本地服务器Cloud FoundryKubernetes快速入门指南。在接下来的几周内,请关注更新的SCDF Cloud Foundry 磁贴 版本。

以下是亮点

  • 改进的 UI

  • 流应用程序 DSL

  • 审计追踪

  • 并发任务启动限制

  • 流和任务验证

  • 强制升级流

  • 在 Kubernetes 上调度任务

改进的 UI

UI 拥有全新的外观。导航已从选项卡更改为左侧导航系统。这样可以为使用 Flo 设计器创建流提供更大的屏幕空间,并且可以通过最小化左侧导航来获得更大的屏幕空间。有一个快速搜索功能,可以搜索所有不同的 Data Flow 类别。添加了额外的颜色和整体主题更改,使 UI 看起来更生动。在核心层面,路由管理得到了改进,我们使用 BrowserStack/SauceLabs 提高了端到端测试覆盖率。属性白名单功能经过改进,如果白名单为空,则默认情况下不会显示所有应用程序属性。观看视频以了解 UI 演示。

流应用程序 DSL

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

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

在这些情况下,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

这是一个展示此功能的视频。

审计追踪

为了帮助回答“谁做了什么以及何时做”的问题,引入了审计追踪来存储涉及调度、流和任务的操作。对于应用程序和调度,会对创建和删除操作进行审计。对于流,会对创建、删除、部署、取消部署、更新和回滚进行审计。对于任务,会对创建、启动和销毁进行审计。审计信息可在 UI 中查询。即将推出在 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将验证流或任务应用程序资源是否有效且可访问。这样可以避免在部署时出现异常。使用 UI 进行验证的功能即将推出。

强制升级流

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

Kubernetes上的任务调度

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

下一步

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

保持联系……

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

获取Spring新闻

关注Spring新闻

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部