宣布 Spring Cloud Function 3.0.0.RELEASE 版本发布

工程 | Oleg Zhurakousky | 2019年11月25日 | ...

我们很高兴地宣布 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 的新功能,但在此版本中对其进行了改进。

作为额外的好处,您可以使用不同的编程风格(例如,响应式和命令式)组合函数,您可以组合SupplierFunctionSupplierConsumerFunctionConsumer 等,我们将进行适配。您可以组合生产者函数的输出与消费者函数的输入不匹配的函数,我们将进行转换。将来会有一篇关于此主题的单独博客文章,我们还在改进文档。

Kotlin Lambda 支持

虽然从 v2.x 开始就支持 Kotlin Lambda,但有一些额外的增强功能。您可以在用户指南的 此部分 中了解更多信息。

后续步骤

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

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部