第 9 章 使用 Service Registry 管理模式
本章概述了如何部署 AMQ 流并与红帽服务注册表集成。您可以将服务注册表用作数据流的集中式存储。
Service Registry 支持许多标准工件类型的存储和管理。例如,对于 Kafka,您可以使用基于 AVRO
或 JSON
的 schema 定义。
服务注册表提供 REST API 和 Java REST 客户端,用于通过服务器端端点从客户端应用注册和查询架构。您还可以使用 Service Registry Web 控制台直接浏览和更新模式。您可以将制作者和消费者客户端配置为使用 Service Registry。
还提供了 Maven 插件,以便您可以在构建过程中上传和下载模式。在检查您的架构更新是否与客户端应用兼容时,Maven 插件可用于测试和验证。
其他资源
- Service Registry 文档
- Service Registry 基于 Apicurio Registry 开源社区项目构建,可从 GitHub 获取:apicurio/apicurio-registry
- 另外,GitHub 中也提供了 Service Registry 的演示:Apicurio/apicurio-registry-demo
- Apache Avro
9.1. 为什么使用服务注册表?
使用 Service Registry 将管理模式的过程与客户端应用程序配置分离。您可以通过在客户端代码中指定 URL 来启用应用程序从 registry 中使用 schema。
例如,消息序列化和反序列化的架构可以存储在注册表中,后者随后从使用它们的应用程序引用,以确保它们发送和接收的消息与这些模式兼容。
Kafka 客户端应用程序可以在运行时从 Service Registry 中推送或拉取其模式。
模式可以不断演变,您可以在 Service Registry 中定义规则,例如,确保对 schema 的更改有效且不会破坏应用程序使用以前的版本。服务注册表通过将修改后的架构与以前的架构版本进行比较来检查兼容性。
Service Registry 提供对 Avro 模式的完整架构 registry 支持,供客户端应用程序通过 Service Registry 提供的 Kafka 客户端串行器/deserializer(SerDe)服务使用。