6.3. Service Registry 新功能
Service Registry 2.4 包括以下新功能:
Service Registry 核心新功能
- 工件引用改进
- 工件参考完整性规则 :您现在可以应用新的特定于工件的规则和全局规则,以便在创建或更新工件时强制实施工件引用的完整性。对于所有工件类型,该规则会检测重复的工件引用,并防止引用不存在的工件。对于工件类型的子集(Apache Avro、Google Protobuf、OpenAPI 和 AsyncAPI),该规则可确保所有工件引用都已映射。
- Maven 插件中的自动工件引用检测 :对于工件类型的子集(Apache Avro、Google Protobuf 和 JSON Schema),在创建或更新工件时,Maven 插件现在可以自动识别并配置给定工件的所有工件引用。
- Web 控制台中的工件引用 的视觉化:您可以在新的 References 选项卡中查看工件版本的入站和出站引用。REST API 现在支持检索入站和出站引用。在以前的版本中,REST API 只检索出站引用,Web 控制台不会显示引用。
- 工件引用现在被视为内容 :此版本现在在计算内容哈希和 ID 时考虑工件引用,并在检查工件版本的兼容性时考虑工件引用。如果您上传具有不同引用的同一模式内容,您可以创建一个新的工件版本。
- 客户端 SDK 生成(OpenAPI)
- 此发行版本添加了一个新的 Web 控制台功能,以便用户从 OpenAPI 工件生成客户端 SDK。此功能使用 Microsoft 的 Kiota 来生成 SDK。该功能仅在浏览器中运行,无法使用 API 自动执行。如需更多信息,请参阅 https://github.com/microsoft/kiota。
- 工件版本删除
- 此发行版本在 web 控制台中添加了新的 REST API 操作和新的 Delete 工件版本 设置,以便您通过使用 REST API 删除工件版本。在以前的版本中,工件版本不可变;您可以弃用或禁用它们,但不能删除它们。但是,有时需要删除工件版本,尽管语义有意义。例如,出于规范或策略的原因,您可能需要删除工件版本。
- Core Registry REST API 的改进
- 版本注释 API :您现在可以使用 REST API 向工件版本添加注释。Web 控制台中还不能使用管理注释。
-
export API 支持 Accept 标头中的 application/json :您现在可以在调用
/admin/exportAPI 端点中发送application/json作为Accept标头的值。在以前的版本中,返回application/json格式的响应的唯一方法是使用forBrowser查询参数。现在,您可以使用查询参数或Accept标头。 - 组管理 :您现在可以使用 REST API 直接管理工件组,而不是隐式作为工件创建的一部分。
- Confluent 兼容性 REST API 的改进
- 更新了对 Confluent 兼容性 API 的支持:添加了对 Confluent Schema Registry API 的版本 7 的支持。Service Registry 现在支持不同端点上的 v6 和 v7。
-
可自定义的最多主题数 :现在,您可以使用
registry.ccompat.max-subjects动态配置属性来自定义ccompatAPI 返回的最大主题数量。
- 其他更改
-
serializer/deserializer 工件解析和内容哈希的解析 :SerDe 类现在可以使用 schema 的内容哈希解析工件协调。
- Maven 插件选项为 minify Avro: 当使用 Maven 插件注册 Avro 模式时,您现在可以在注册前减去内容。
-
serializer/deserializer 工件解析和内容哈希的解析 :SerDe 类现在可以使用 schema 的内容哈希解析工件协调。
- community-only :自定义工件类型
用户可以根据自己的自定义工件类型扩展 Service Registry,并删除对现有类型的支持。此功能仅适用于 Service Registry 的社区版本,且不被支持。
注意为了提供此功能,REST API 中的
ArtifactType从enum改为一个简单的字符串。如果您使用 REST API 客户端进行自定义集成,则可能需要在升级到较新的客户端后编辑代码。
Service Registry Operator 的新功能
- 对 HTTPS 的 Operator 支持
-
添加了对在 OpenShift 集群中配置 HTTPS 连接的支持。您可以分别创建包含证书和私钥的 Secret,名为
tls.crt和tls.key,并通过在ApicurioRegistry自定义资源定义(CRD)文件中设置spec.configuration.security.https.secretName字段来引用 Secret。然后,Service Registry Operator 可以在 Service RegistryService资源上配置 HTTPS 端口。如果启用了 HTTPS,您可以通过将spec.security.https.disableHttp设置为true来禁用 HTTP 连接。 - 支持手动管理的 OpenShift 资源
现在,您可以禁用某些资源类型,以确保 Service Registry Operator 不会创建和管理这些资源,以便您可以手动配置它们。使用 Service Registry Operator 目前不支持的功能,手动配置为您提供了更大的灵活性。如果您禁用资源类型,则其现有实例将被删除。如果启用资源类型,Service Registry Operator 会尝试使用 app 标签(如
app=example-apicurioregistry)查找资源,并开始管理它。否则,Service Registry Operator 会创建一个新实例。您可以以这种方式禁用以下资源类型:-
入口 -
NetworkPolicy -
PodDisruptionBudget
-
- 改进了日志级别配置
-
现在,您可以使用
ApicurioRegistryCRD 文件中的spec.configuration.registryLogLevel字段,为 Service Registry 和 Service Registry Operator 设置日志级别。这个新字段设置 Apicurio 应用程序组件的日志级别(不包括非Apicurio 组件和库),这与spec.configuration.logLevel字段(适用于非Apicurio 组件和库)不同。现在,您可以通过在 OperatorDeployment资源中设置LOG_LEVEL环境变量,为 Service Registry Operator 设置日志级别。有效的LOG_LEVEL值是debug、info、warn和error。 - CORS 允许的源
服务器可以使用 Cross-Origin Resource Sharing (CORS)机制来控制响应是否与请求的来源共享。Service Registry Operator 现在根据
ApicurioRegistryCRD 文件中的spec.deployment.host字段的值设置CORS_ALLOWED_ORIGINS环境变量。此环境变量控制 Service Registry 发送的Access-Control-Allow-Origin标头。如果使用自定义
Ingress(例如,配置 HTTPS),您可以通过将spec.deployment.managedResources.disable字段设置为Ingresstrue来禁用 Operator 管理的 Ingress,仍然将spec.deployment.host字段设置为适当的值。如果要配置完全自定义的 CORS 策略,您可以将spec.deployment.host字段设置为空,应用更改,然后使用spec.deployment.env字段手动设置CORS_ALLOWED_ORIGINS环境变量。- 使用 pod 模板配置 Service Registry 部署
ApicurioRegistryCRD 文件现在包含spec.deployment.podTemplateSpecPreview字段作为技术预览功能。spec.deployment.podTemplateSpecPreview字段的结构与 OpenShiftDeployment资源(PodTemplateSpecstruct)中的spec.template字段相同。通过一些限制,Service Registry Operator 将来自此字段的数据转发到 Service RegistryDeployment资源中的对应字段。此功能提供更大的灵活性,而无需 Service Registry Operator 原生支持每个用例。重要技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
Service Registry 用户文档和示例
文档库已使用版本 2.4 中的新功能更新:
开源演示应用程序也已更新: