8.2. Service Registry serializer/deserializer 配置属性


本节提供了 Service Registry Kafka 序列化器(SerDes)的 Java 配置属性的引用信息。

SchemaResolver 接口

Service Registry SerDes 基于 SchemaResolver 接口,它提取对 registry 的访问,并为所有支持的格式的 SerDes 类应用相同的查找逻辑。

表 8.1. SchemaResolver 接口的配置属性
常数属性Description类型默认

SCHEMA_RESOLVER

apicurio.registry.schema-resolver

供 serializers 和 deserializers 使用。实施 SchemaResolver 的完全限定 Java 类名称。

字符串

io.apicurio.registry.resolver.DefaultSchemaResolver

注意

建议使用 DefaultSchemaResolver,并为大多数用例提供有用的功能。对于某些高级用例,您可以使用 SchemaResolver 的自定义实现。

DefaultSchemaResolver 类

您可以使用 DefaultSchemaResolver 配置以下功能:

  • 访问 registry API
  • 如何查找 registry 中的工件
  • 如何向 Kafka 写入和读取工件信息
  • deserializers 的回退选项
配置 registry API 访问选项

DefaultSchemaResolver 提供以下属性来配置对核心 registry API 的访问:

表 8.2. 访问 registry API 的配置属性
常数属性Description类型默认

REGISTRY_URL

apicurio.registry.url

供 serializers 和 deserializers 使用。用于访问 registry API 的 URL。

字符串

AUTH_SERVICE_URL

apicurio.auth.service.url

供 serializers 和 deserializers 使用。身份验证服务的 URL。在使用 OAuth 客户端凭证流访问安全 registry 时是必需的。

字符串

AUTH_REALM

apicurio.auth.realm

供 serializers 和 deserializers 使用。用于访问身份验证服务的 realm。在使用 OAuth 客户端凭证流访问安全 registry 时是必需的。

字符串

AUTH_CLIENT_ID

apicurio.auth.client.id

供 serializers 和 deserializers 使用。用于访问身份验证服务的客户端 ID。在使用 OAuth 客户端凭证流访问安全 registry 时是必需的。

字符串

AUTH_CLIENT_SECRET

apicurio.auth.client.secret

供 serializers 和 deserializers 使用。用于访问身份验证服务的客户端机密。在使用 OAuth 客户端凭证流访问安全 registry 时是必需的。

字符串

AUTH_USERNAME

apicurio.auth.username

供 serializers 和 deserializers 使用。访问 registry 的用户名。使用 HTTP 基本身份验证访问安全 registry 时是必需的。

字符串

AUTH_PASSWORD

apicurio.auth.password

供 serializers 和 deserializers 使用。用于访问 registry 的密码。使用 HTTP 基本身份验证访问安全 registry 时是必需的。

字符串

配置 registry 查找选项

DefaultSchemaResolver 使用以下属性来配置如何在 Service Registry 中查找工件。

表 8.3. registry 工件查询的配置属性
常数属性Description类型默认

ARTIFACT_RESOLVER_STRATEGY

apicurio.registry.artifact-resolver-strategy

仅供序列化商使用。实现 ArtifactReferenceResolverStrategy 的完全限定 Java 类名称并将每个 Kafka 消息映射到 ArtifactReference (groupIdartifactId 和 version)。例如,默认策略使用主题名称作为 schema artifactId

字符串

io.apicurio.registry.serde.strategy.TopicIdStrategy

EXPLICIT_ARTIFACT_GROUP_ID

apicurio.registry.artifact.group-id

仅供序列化商使用。设置用于查询或创建工件的 groupId。覆盖 ArtifactResolverStrategy 返回的 groupId

字符串

EXPLICIT_ARTIFACT_ID

apicurio.registry.artifact.artifact-id

仅供序列化商使用。设置用于查询或创建工件的 artifactId。覆盖 ArtifactResolverStrategy 返回的 artifactId

字符串

EXPLICIT_ARTIFACT_VERSION

apicurio.registry.artifact.version

仅供序列化商使用。设置用于查询或创建工件的工件版本。覆盖 ArtifactResolverStrategy 返回的版本。

字符串

FIND_LATEST_ARTIFACT

apicurio.registry.find-latest

仅供序列化商使用。指定 serializer 是否在 registry 中查找对应组 ID 和工件 ID 的最新工件。

布尔值

false

AUTO_REGISTER_ARTIFACT

apicurio.registry.auto-register

仅供序列化商使用。指定 serializer 试图在 registry 中创建工件。JSON Schema serializer 不支持此功能。

布尔值

false

AUTO_REGISTER_ARTIFACT_IF_EXISTS

apicurio.registry.auto-register.if-exists

仅供序列化商使用。在存在冲突创建工件时,配置客户端的行为,因为工件已存在。可用值包括 FAILUPDATERETURNRETURN_OR_UPDATE

字符串

RETURN_OR_UPDATE

CHECK_PERIOD_MS

apicurio.registry.check-period-ms

供 serializers 和 deserializers 使用。指定在 auto-eviction 前缓存工件的时长。如果没有设置,则每次都会获取工件。

字符串

USE_ID

apicurio.registry.use-id

供 serializers 和 deserializers 使用。配置,以使用指定的 IdOption 作为工件的标识符。选项为 globalIdcontentId。指示 serializer 将指定的 ID 写入 Kafka,并指示 deserializer 使用这个 ID 来查找 schema。

字符串

globalId

配置在 Kafka 中读/写 registry 工件

DefaultSchemaResolver 使用以下属性来配置工件信息是如何写入和从 Kafka 读取的。

表 8.4. Kafka 中读/写工件信息的配置属性
常数属性Description类型默认

ENABLE_HEADERS

apicurio.registry.headers.enabled

供 serializers 和 deserializers 使用。配置 以读取/写入工件标识符到 Kafka 消息标头,而不是在消息有效负载中。

布尔值

true

HEADERS_HANDLER

apicurio.registry.headers.handler

供 serializers 和 deserializers 使用。实现 HeadersHandler 的完全限定 Java 类名称,并将工件标识符写入/读取至 Kafka 消息标头。

字符串

io.apicurio.registry.serde.headers.DefaultHeadersHandler

ID_HANDLER

apicurio.registry.id-handler

供 serializers 和 deserializers 使用。实施 IdHandler 的类的完全限定 Java 类名称,并将工件标识符写入/读取消息有效负载。只有在 apicurio.registry.headers.enabled 被设置为 false 时才使用。

字符串

io.apicurio.registry.serde.DefaultIdHandler

ENABLE_CONFLUENT_ID_HANDLER

apicurio.registry.as-confluent

供 serializers 和 deserializers 使用。启用与 IdHandler 传统兼容实施的快捷方式。只有在 apicurio.registry.headers.enabled 被设置为 false 时才使用。

布尔值

true

配置 deserializer fall-back 选项

DefaultSchemaResolver 使用以下属性为所有 deserializers 配置回退提供程序。

表 8.5. deserializer fall-back provider 的配置属性
常数属性Description类型默认

FALLBACK_ARTIFACT_PROVIDER

apicurio.registry.fallback.provider

仅限由 deserializers 使用。设置 FallbackArtifactProvider 的自定义实现,用于解析用于反序列化的工件。FallbackArtifactProvider 配置一个回退工件,以便在查找失败时从 registry 获取。

字符串

io.apicurio.registry.serde.fallback.DefaultFallbackArtifactProvider

DefaultFallbackArtifactProvider 使用以下属性来配置 deserializer fall-back 选项:

表 8.6. deserializer fall-back 选项的配置属性
常数属性Description类型默认

FALLBACK_ARTIFACT_ID

apicurio.registry.fallback.artifact-id

仅供反序列化商使用。设置用于解析用于反序列化的工件的 artifactId

字符串

FALLBACK_ARTIFACT_GROUP_ID

apicurio.registry.fallback.group-id

仅供反序列化商使用。设置用于解析用于反序列化的组的 groupId

字符串

FALLBACK_ARTIFACT_VERSION

apicurio.registry.fallback.version

仅供反序列化商使用。设置用于解析用于反序列化的工件的版本。

字符串

其他资源

  • 如需了解更多详细信息,请参阅 SerdeConfig Java 类
  • 您可以将应用程序属性配置为 Java 系统属性,或者在 Quarkus application.properties 文件中包含它们。如需了解更多详细信息,请参阅 Quarkus 文档
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.