领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多这篇博文更新了 Spring Cloud Stream 4.0.x 版本中包含的模式注册表支持。
许多企业使用模式注册表来处理模式演变用例,例如 Confluent 模式注册表。从 Spring Cloud Stream 的 1.1.x
版本到 3.0.0
版本,我们提供了模式注册表服务器和基于 AVRO 的模式注册表客户端转换器,可以协调模式注册表服务器中的模式。Spring Cloud Stream 3.0.0 版本将模式注册表组件移动到顶级 spring-cloud 项目,并且 Spring Cloud Stream 将这些组件包含在其 BOM 中,以便最终用户应用程序使用它们。但是,这种方式扩展性不佳,在 3.2 版本中,我们决定停止将它们作为 Spring Cloud Stream BOM 的一部分。
模式注册表用例在流应用程序中非常重要,社区一直渴望从核心 Spring Cloud Stream 获得解决方案。我们很高兴地通知您,模式注册表组件已返回到 Spring Cloud Stream 的 4.0.0 版本。这条路径是这些模式注册表组件的完整循环之旅。在下面,我们将重新介绍这些组件并简要概述其功能。
Spring Cloud Stream 4.0.x
版本提供了一个独立的模式注册表服务器,专门用于 Spring Cloud Stream 解决的用例。这些用例涵盖了跨多个模式版本的模式演变。这些用例的主要要点是,生产者应用程序使用先前的模式版本发布。但是,消费者以向后兼容的方式处理所有模式版本。这些工作流包括模式验证,以及使用已验证的模式作为契约和消息转换器数据序列化的基础。我们不建议在 Spring Cloud Stream 之外使用此模式注册表服务器。默认情况下,此模式注册表服务器使用内存中的 H2 数据库作为后端存储。但是,您可以使用 Postgres 或 MySQL 作为后端数据库。Spring Cloud Stream 将此模式注册表服务器作为完整的 Spring Boot 应用程序提供。因此,您可以直接从 Maven 中央下载它(当 Spring Cloud Stream 4.0.0
普遍可用时)。如果您想在快照或里程碑版本上尝试此功能,您可以从相关的 Artifactory 存储库下载它。以下是 4.0.0-SNAPSHOT
版本的 Maven 坐标。如果您不想使用快照进行测试,也可以使用 4.0.0-M5
或 4.0.0-RC1
。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-schema-registry-server</artifactId>
<version>4.0.0-SNAPSHOT</version>
</dependency>
假设您想使用独立模式注册表服务器以外的其他服务器(自定义服务器)。在这种情况下,您可以在应用程序中包含服务器模块作为依赖项,并通过启用 @EnableSchemaRegistryServer
创建自定义 Spring Boot 应用程序。如果您有不受支持的后端存储,则应使用此策略。
Spring Cloud Stream 4.0.0
还提供了一个模式注册表客户端模块,该模块提供基于 AVRO 的消息转换器。这些转换器是模式注册表感知的,并与模式注册表服务器通信以协调模式,同时转换有效负载以进行序列化。应用程序需要使用注释 @EnableSchemaRegistryClient
来使它们通过 SchemaRegistryClient
bean 了解模式注册表服务器。Spring Boot 自动配置基于 AVRO 的模式注册表感知消息转换器。
以下是 4.0.0-SNAPSHOT
版本的模式注册表客户端模块的 Maven 坐标。您也可以使用 4.0.0-M5
或 4.0.0-RC1
。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-schema-registry-client</artifactId>
<version>4.0.0-SNAPSHOT</version>
</dependency>
Confluent 模式注册表是针对基于 Kafka 的应用程序的模式演变的流行商业解决方案。上面提到的 Spring Cloud Stream AVRO 消息转换器可以与 Confluent 模式注册表一起使用。要使其工作,应用程序需要覆盖 SchemaRegistryClient
bean 并为 ConfluentSchemaRegistryClient
提供实现。
我们提供了一组示例应用程序,演示了本博文中描述的所有概念 此处。请参阅 自述文件 以获取更多详细信息。
此处 是模式注册表参考文档。
Spring Cloud Stream 4.0.0
从 Spring Cloud Stream 的先前版本中重新引入了模式注册表组件。这篇博文检查了重新引入支持的动机和概述。Spring Cloud Stream 中提供的支持可能仅涵盖某些模式演变用例。但是,提供的模式注册表组件可以支持许多属于 Spring Cloud Stream 应用程序范围内的模式演变用例,并具有传输中立的增值。