更进一步
VMware 提供培训和认证,助您快速提升。
了解更多The Spring Cloud Data Flow team is pleased to announce the release of 1.7 M1
. Follow the Getting Started guides for 本地服务器, Cloud Foundry, and Kubernetes.
改进的用户界面
流应用 DSL
审计跟踪
并发任务启动限制
流和任务验证
流的强制升级
用户界面焕然一新。导航已从标签页迁移到左侧导航系统。这为使用 Flo designer 创建流提供了更大的屏幕空间,通过最小化左侧导航可以获得更多空间。还有一个快速搜索功能,可以搜索所有不同的 Data Flow 类别。添加了额外的颜色和整体主题更改,使 UI 看起来更生动。在核心深处,路由管理得到了改进,我们使用 BrowserStack/SauceLabs 增加了端到端测试覆盖率。
并非所有用例都可以通过将数据从源流经处理器到汇聚点的线性管道来解决,每个应用之间只有单个目标连接。有些用例需要一组具有多个输入和输出的应用集合。Spring Cloud Stream 通过使用用户定义的绑定接口支持这种拓扑结构,但在 Data Flow 中不支持。在 Kafka Streams 应用中具有多个输入和输出也很常见。
此外,并非所有用例都使用 Spring Cloud Stream 应用来解决。一个向 Kafka 或 RabbitMQ 应用发送同步请求/回复消息的 http gateway 应用可以仅使用 Spring Integration 编写。
在这些情况下,Data Flow 无法对数据从一个应用流向另一个应用的流向做出假设,因此无法像使用 流管道 DSL 时那样设置应用的 destination 属性。
为了解决这些用例,我们引入了 流应用 DSL。该 DSL 使用逗号
而非管道符
来表明 Data Flow 不应配置应用的绑定属性。开发者需要自行设置适当的部署属性来“连接”应用。使用 EIP Cafe 示例 域的 DSL 示例如下:
dataflow:> stream create --definition "orderGeneratorApp, baristaApp, hotDrinkDeliveryApp, coldDrinkDeliveryApp" --name myCafeStream
其中 DSL 中列出的应用需要注册为 --type app
类型。
在此流中,baristaApp
有两个输出目标,分别由 hotDrinkDeliveryApp
和 coldDrinkDeliveryApp
消费。部署流时,设置 destination 属性以匹配所需数据流的 destination,例如:
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 中访问审计信息的功能即将推出。
Spring Cloud Data Flow 允许您强制限制并发运行任务的最大数量,以防止计算资源饱和。可以通过设置 spring.cloud.dataflow.task.maximum-concurrent-tasks
属性来配置此限制。默认值为 20。您还可以通过 REST endpoint /tasks/executions/current
获取当前并发执行的任务数量。新的 tasklauncher-dataflow 应用利用此功能,仅在并发任务数量低于最大值时启动任务。此功能也是一个正在开发中的新 FTP ingest 示例应用的核心。可以在 云原生数据密集型应用模式 网络研讨会中先睹为快。
新的 shell 命令 stream validate
和 task validate
将验证流或任务应用资源是否有效且可访问。这避免了在部署时出现异常。使用 UI 进行验证的功能即将推出。
使用原力! 升级流时,您现在可以使用选项 --force
部署当前已部署应用的新实例,即使应用或部署属性没有改变。当应用在启动时自行获取配置信息(例如从 Spring Cloud Config Server)时,需要此行为。您可以使用选项 --app-names
指定要强制升级的应用。如果您未指定任何应用名称,所有应用都将强制升级。您可以将 --force
和 --app-names
选项与 --properties
或 --propertiesFile
选项一起使用。
一如既往,我们欢迎反馈和贡献,请随时通过 Stackoverflow、GitHub 或 Gitter 与我们联系。