David Turanski

David Turanski

校友
博客文章按作者David Turanski

测试 Spring Cloud Stream 应用 - 第 1 部分

工程 | 2020 年 12 月 15 日 | ...

这篇文章是博客系列的一部分,探讨了基于 Java 函数重新设计的 Spring Cloud Stream 应用。本期分为两部分,探讨了用于实现流应用的函数测试策略。我们将特别关注与外部资源集成的函数,这会带来额外的测试挑战。大多数预打包的 source 和 sink 应用就是这种情况。为了说明这一点,我们将介绍一个示例 couchbase-sink 应用。在第 1 部分中,我们将重点介绍 sink 所依赖的核心函数……

测试 Spring Cloud Stream 应用 - 第 2 部分

工程 | 2020 年 12 月 15 日 | ...

这是流应用测试的第 2 部分。在第 1 部分中,我们实现了并测试了示例 couchbase-sink 应用所需的核心函数。函数级别的测试涵盖了预期的成功和错误场景,并依赖 Testcontainers 来配置 Couchbase 集群。本文假设您已阅读第 1 部分,并从那里继续。

Couchbase Sink

在第 1 部分中,我们验证了用于将数据 upsert 到 Couchbase 中的函数按预期工作。现在,我们可以使用该函数(公开为 java.util.Consumer)来实现一个 sink,用于构建数据管道……

案例研究:使用 Spring Cloud Data Flow 远程文件摄取

工程 | 2020 年 9 月 29 日 | ...

本文是博客系列的一部分,探讨了基于 Java 函数重新设计的 Spring Cloud Stream 应用。在本章中,我们将探讨如何使用 Spring Cloud Stream ApplicationsSpring Cloud Data Flow 来实现一个非常常见的 ETL 用例:从远程服务摄取文件。具体来说,我们将研究如何从 S3、SFTP 和 FTP 摄取文件。

博客系列到目前为止包含的内容如下

案例研究:HTTP 请求函数和 Processor

工程 | 2020 年 8 月 17 日 | ...

引言

本系列伊始,我们介绍了基于 Java 函数的流应用,以及函数组合上一篇文章提供了在 Spring Cloud Data Flow 中构建和运行简单流应用的教程。今天,我们将探讨 HTTP Request Function,并提供其使用示例。

如果您错过了,本系列之前的文章有

案例研究:使用 HTTP Source 和 JDBC Sink 构建并运行流应用

工程 | 2020 年 8 月 10 日 | ...

引言

到目前为止,本系列介绍了基于 Java 函数的新流应用,以及函数组合。我们还提供了详细的示例,说明如何从 supplier 构建 source 以及从 consumer 构建 sink。在这里,我们继续旅程,带来一系列案例研究中的第一篇。每个案例研究都演示了如何在各种场景下使用一个或多个可用的预打包 Spring Boot 流应用来构建数据流管道。

今天,我们将展示两个最常用的应用:HTTP sourceJDBC sink。我们将使用它们来构建一个简单的服务,该服务接受 HTTP POST 请求并将内容保存到数据库表中。我们将首先将这些应用作为独立的 Spring Cloud Stream 应用运行,然后演示如何使用 Spring Cloud Data Flow 编排相同的管道……

Spring Cloud Stream 应用的 Java 函数简介 - 第 1 部分

工程 | 2020 年 7 月 20 日 | ...

Spring Cloud Stream 应用的 Java 函数简介 - 第 1 部分

上周我们发布了 Spring Cloud Stream 应用的 Java 函数简介 - 第 0 部分
以宣布 Spring Cloud Stream 应用 2020.0.0-M2 的发布。
在这里,我们将探讨函数组合,这是第 0 部分中介绍的面向函数架构所实现的更强大的功能之一。如果您还没有阅读第 0 部分,现在是阅读的好时机!

函数组合

函数组合在数学和计算机科学中有着坚实的理论基础。
在实际应用中,它是一种……的方式

Spring Cloud Stream 应用的 Java 函数简介 - 第 0 部分

版本发布 | 2020 年 7 月 13 日 | ...

我们很高兴地宣布 Spring Cloud Stream 应用 2020.0.0-M2 版本发布。此版本是对旧版 Spring Cloud Stream App Starters 的全面改进。从本版本开始,我们将从面向主题的版本列车命名(按字母顺序排列的著名科学家)转向基于日历的版本管理。当前的 GA 版本称为 Einstein,我们很高兴推出 2020.0.0-M2。我们也在放弃 app starters。经过重新组织、重新打包以及(在某些情况下)重写底层代码后,我们现在有了新的 Git 仓库:spring-cloud/stream…

Spring Framework 4 中的 Groovy Bean 配置

工程 | 2014 年 3 月 3 日 | ...

本文旨在向 Java 开发人员介绍 Groovy Bean Builder,将其作为 Java @Configuration 和 XML 配置的强大替代或补充。Spring Framework 4.0 版本包含了 Grails Bean Builder 到核心 Spring Framework 的移植,为配置 Spring 应用提供了 Groovy DSL。Groovy 和 Grails 的开发人员对此种配置 Spring 应用的方式无疑已经非常熟悉,我相信你们中的其他人也已经在想“这真是太酷了!”

如果您不是 Groovy 专家,请不要担心。就像许多 Java 程序员使用另一个流行的 Groovy DSL(Gradle)来构建应用一样,您只需要了解一些基本语法即可入门。示例代码可在 github 上获取……

Spring Data GemFire 1.3.0 发布

工程 | 2013 年 3 月 14 日 | ...

我很高兴地宣布 Spring Data GemFire 1.3.0 的 GA 版本发布。除了许多小的 bug 修复和增强之外,此版本还包含一些显著的新特性,使使用 GemFire 编写 Java 应用变得更加容易

函数的注解支持

GemFire 通过提供远程函数执行框架,实现了“将代码带到数据”的能力。秉承 Spring 的核心价值观,Spring Data GemFire 隐藏了注册和执行远程函数所需的样板代码,让您可以编写 POJO 并专注于应用逻辑。详细信息请参见 Spring Data GemFire 参考指南中的函数执行注解支持章节。

简化 GemFire 数据源连接

GemFire 提供了许多选项来调整其连接池的性能,并配置本地数据的管理和同步方式。Spring Data GemFire 命名空间支持所有这些选项,但许多应用是客户端,它们只需要对 GemFire 数据网格进行读/写访问。对于这类应用,现在可以作为客户端连接到 GemFire,而无需显式配置连接池或客户端区域

 <gfe-data:datasource>
        <gfe-data:locator host="${host}" port="${port}"/>
 </gfe-data:datasource>

上述配置将为服务器上所有可用区域创建客户端缓存、连接池和代理客户端区域,并采用合理的默认设置,并将它们注册为 Spring bean。

JSON 支持

GemFire 7.0 提供了存储 JSON 并提供完整查询支持的能力。通常,这需要应用使用 JSONFormatter 在 GemFire 的内部格式和 JSON 字符串之间进行转换。Spring Data GemFire 现在提供了一个选项,可以为选定的区域自动执行此转换,并使用 Jackson 的 ObjectMapper 将 Object 单向转换为 JSON。此功能使用 Spring AOP 拦截 Region 和 GemFireTemplate 上的适当操作。详细信息请参见Spring Data GemFire 参考指南

Spring Integration 的 Groovy DSL

工程 | 2012 年 11 月 6 日 | ...

Spring Integration 使用 Spring 编程模型实现 企业集成模式,以在基于 Spring 的应用中启用消息传递。Spring Integration 还通过支持 jms、http、amqp、tcp、ftp(s)、smtp 等的声明式适配器提供与外部系统的集成。目前,消息流的配置主要通过 Spring XML 完成,Spring Integration 支持多个命名空间以使其尽可能简洁。今年早些时候,SpringSource 发布了用于 Spring Integration 的 Scala DSL。现在,我们很高兴宣布第一个里程碑版本发布……

抢先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部