8.2. Service Registry serializer/deserializer 配置属性


本节提供有关 Service Registry Kafka serializers/deserializers(SerDes)的 Java 配置属性的参考信息。

SchemaResolver 接口

Service Registry SerDes 基于 SchemaResolver 接口,它抽象可以访问 registry,并为所有支持的格式应用相同的查找逻辑。

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

SCHEMA_RESOLVER

apicurio.registry.schema-resolver

被序列化和反序列化器使用。实施 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 的配置属性
常数属性描述类型默认

REGISTRY_URL

apicurio.registry.url

被序列化和反序列化器使用。用于访问 registry API 的 URL。

字符串

AUTH_SERVICE_URL

apicurio.auth.service.url

被序列化和反序列化器使用。身份验证服务的 URL。在使用 OAuth 客户端凭证流访问安全 registry 时,需要此项。

字符串

AUTH_REALM

apicurio.auth.realm

被序列化和反序列化器使用。访问身份验证服务的域。在使用 OAuth 客户端凭证流访问安全 registry 时,需要此项。

字符串

AUTH_CLIENT_ID

apicurio.auth.client.id

被序列化和反序列化器使用。用于访问身份验证服务的客户端 ID。在使用 OAuth 客户端凭证流访问安全 registry 时,需要此项。

字符串

AUTH_CLIENT_SECRET

apicurio.auth.client.secret

被序列化和反序列化器使用。用于访问身份验证服务的客户端机密。在使用 OAuth 客户端凭证流访问安全 registry 时,需要此项。

字符串

AUTH_USERNAME

apicurio.auth.username

被序列化和反序列化器使用。用于访问 registry 的用户名。在使用 HTTP 基本身份验证访问安全 registry 时,需要此项。

字符串

AUTH_PASSWORD

apicurio.auth.password

被序列化和反序列化器使用。用于访问 registry 的密码。在使用 HTTP 基本身份验证访问安全 registry 时,需要此项。

字符串

配置 registry 查找选项

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

表 8.3. registry 工件查找的配置属性
常数属性描述类型默认

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

仅被序列化器使用。指定序列化器是否尝试在 registry 中查找对应的组 ID 和工件 ID 的最新工件。

布尔值

false

AUTO_REGISTER_ARTIFACT

apicurio.registry.auto-register

仅被序列化器使用。指定序列化器是否在 registry 中创建工件。JSON 架构序列化器不支持此功能。

布尔值

false

AUTO_REGISTER_ARTIFACT_IF_EXISTS

apicurio.registry.auto-register.if-exists

仅被序列化器使用。配置在创建工件冲突时客户端的行为,因为工件已存在。可用值有 FAILUPDATERETURN _OR_UPDATE

字符串

RETURN_OR_UPDATE

CHECK_PERIOD_MS

apicurio.registry.check-period-ms

被序列化和反序列化器使用。指定在自动驱除前缓存工件的时长。如果没有设置,则每次都会获取工件。

字符串

USE_ID

apicurio.registry.use-id

被序列化和反序列化器使用。配置,以使用指定的 IdOption 作为工件标识符。选项为 globalIdcontentId。指示 serializer 将指定的 ID 写入 Kafka,并指示 deserializer 使用这个 ID 查找 schema。

字符串

globalId

配置在 Kafka 中读/写 registry 工件

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

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

ENABLE_HEADERS

apicurio.registry.headers.enabled

被序列化和反序列化器使用。配置 将工件标识符改为 Kafka 消息标头,而不是在消息有效负载中。

布尔值

true

HEADERS_HANDLER

apicurio.registry.headers.handler

被序列化和反序列化器使用。实现 HeadersHandler 并将工件标识符写入/从 Kafka 消息标头的全限定 Java 类名称。

字符串

io.apicurio.registry.serde.headers.DefaultHeadersHandler

ID_HANDLER

apicurio.registry.id-handler

被序列化和反序列化器使用。实现 IdHandler 并将工件标识符写入/从消息有效负载到/读取的类的完全限定 Java 类名称。只有在将 apicurio.registry.headers.enabled 设置为 false 时才使用。

字符串

io.apicurio.registry.serde.DefaultIdHandler

ENABLE_CONFLUENT_ID_HANDLER

apicurio.registry.as-confluent

被序列化和反序列化器使用。启用 IdHandler 的传统 Confluent 兼容实施的快捷方式。只有在将 apicurio.registry.headers.enabled 设置为 false 时才使用。

布尔值

true

配置 deserializer fall-back 选项

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

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

FALLBACK_ARTIFACT_PROVIDER

apicurio.registry.fallback.provider

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

字符串

io.apicurio.registry.serde.fallback.DefaultFallbackArtifactProvider

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

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

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.