第 1 章 Service Registry 简介
本章介绍了 Service Registry 概念和功能,并提供了有关存储在 registry 中支持的工件类型的详情:
- 第 1.1 节 “什么是 Service Registry?”
- 第 1.2 节 “Service Registry 中的 schema 和 API 工件”
- 第 1.3 节 “使用 Service Registry web 控制台管理内容”
- 第 1.4 节 “客户端的 Service Registry REST API”
- 第 1.5 节 “Service Registry 存储选项”
- 第 1.6 节 “使用 schemas 和 Java 客户端序列化器/反序列化器验证 Kafka 消息”
- 第 1.7 节 “使用 Kafka Connect 转换器将数据流传输到外部系统”
- 第 1.8 节 “Service Registry 演示示例”
- 第 1.9 节 “Service Registry 可用发行版本”
1.1. 什么是 Service Registry?
Service Registry 是一个数据存储,用于在事件驱动的和 API 架构间共享标准事件模式和 API 设计。您可以使用 Service Registry 将数据的结构与客户端应用程序分离,并使用 REST 接口在运行时共享和管理您的数据类型和 API 描述。
客户端应用程序可以在运行时动态推送或从 Service Registry 拉取最新的模式更新,而无需重新部署。开发人员团队可以查询已在生产环境中部署的服务所需的现有模式,并可在开发中注册新服务所需的新模式。
您可以通过在客户端应用程序代码中指定 Service Registry URL 来启用客户端应用程序使用存储在 Service Registry 中的模式和 API 设计。Service Registry 可以存储用于序列化和反序列化消息的模式,这些消息从客户端应用程序引用,以确保它们发送和接收的信息与这些模式兼容。
使用 Service Registry 将数据结构与应用程序分离,通过降低整个消息大小来降低成本,并通过提高整个机构内的 schema 和 API 设计的一致性重复使用来创建费用。Service Registry 提供了一个 Web 控制台,可方便开发人员和管理员管理 registry 内容。
您可以配置可选规则来管理 Service Registry 内容的演进。这包括规则,以确保上传的内容有效,或者与其他版本兼容。任何配置的规则都必须在上传到 Service Registry 之前传递,这样可确保不会在无效或不兼容的模式或 API 设计中造成时间。
Service Registry 基于 Apicurio Registry 开源社区项目。详情请查看 https://github.com/apicurio/apicurio-registry。
Service Registry 功能
- 标准事件模式和 API 规格的多个有效负载格式,如 Apache Avro、JSON Schema、Google Protobuf、AsyncAPI、OpenAPI 等。
- AMQ Streams 或 PostgreSQL 数据库中可插拔的 Service Registry 存储选项。
- 内容验证和版本兼容性的规则,以管理 Service Registry 内容如何随时间变化。
- 使用 Web 控制台、REST API、命令行、Maven 插件或 Java 客户端管理 Service Registry 内容。
- 完整的 Apache Kafka 模式 registry 支持,包括与外部系统的 Kafka Connect 集成。
- Kafka 客户端序列化器/反序列化器(SerDes)在运行时验证消息类型。
- 与现有 Confluent 模式 registry 客户端应用程序兼容。
- 云原生 Quarkus Java 运行时,用于低内存占用和快速部署时间。
- 基于 Operator 在 OpenShift 上安装 Service Registry。
- 使用红帽单点登录的 OpenID Connect (OIDC)身份验证。