领先一步
VMware 提供培训和认证,助您加速进步。
了解更多我们很高兴地宣布发布 Spring Cloud Function 3.0.0.RELEASE,它作为 Spring Cloud Hoxton.RELEASE(即将发布)的一部分提供,并基于 Spring Boot 2.2.x。
Spring Cloud Function 3.0.0.RELEASE 模块可在 Maven Central 存储库中使用。
此版本引入了对 FunctionCatalog 的重构实现,该实现除了诸如函数组合、对响应式和非响应式函数的支持等功能外,还通过 Spring Messaging 提供的 MessageConverters 引入了透明类型转换。
这意味着您可以在函数签名中使用特定领域的类型,并依赖 MessageConverters 进行转换。
@Bean
public Function<Foo, Bar> funcFooToBar() {
return value -> . . .;
}
此外,在组合函数时也会使用这些转换器来转换类型。考虑以下函数
@Bean
public Function<Flux<Baz>, Flux<Xyz>> funcBazToXyz() {
return value -> . . .;
}
组合为 spring.cloud.function.definition=funcFooToBar|funcBazToXyz。鉴于上述两个函数在 funcFooToBar 的输出和 funcBazToXyz 的输入之间存在不匹配,MessaggeConverters 将介入转换此类类型。另请注意 FunctionCatalog 的另一个功能,它允许您组合响应式和非响应式函数。Spring Cloud Function 提供了一些开箱即用的 MessageConverters,应该能满足大多数情况(例如 json 到 POJO 及其反向转换),但是您也可以通过简单地声明一个 MessageConverter 类型的 bean 来注册自己的。
Spring Cloud Function 的路由功能允许您调用一个特殊的函数,该函数充当路由到您希望调用的实际函数的路由器。此功能在某些 FAAS 环境中非常有用,在这些环境中,维护多个函数的配置可能很麻烦,或者不可能暴露多个函数。
您可以在用户指南的本节中找到有关此功能的更多详细信息。
有时需要对数据流进行分类和组织。例如,考虑一个经典的与处理无组织数据(例如,‘订单’和‘发票’)相关的大数据用例,并且您希望每个都进入单独的数据存储。这就是函数元数(具有多个输入和输出的函数)支持发挥作用的地方。有一个关于此功能的单独帖子在这里,并且此类函数的示例可在以下测试用例之一中找到。
有关更多信息,请参阅用户指南的本节。
虽然函数组合不是 Spring Cloud Function 的新功能,但在此版本中得到了改进。
作为额外的优势,您可以组合具有不同编程风格的函数(例如,响应式和命令式),您可以组合 Supplier 和 Function、 Supplier 和 Consumer、 Function 和 Consumer 等——我们将进行适配。您可以组合生产者函数的输出与消费者函数的输入不匹配的函数——我们将进行转换。将来会有关于此主题的单独博客,我们也正在完善文档。
虽然自 v2.x 起就支持 Kotlin lambda,但有一些额外的增强功能。您可以在用户指南的本节中阅读更多相关信息。
一如既往,我们欢迎反馈和贡献,请通过 Stackoverflow 或 GitHub 与我们联系。