8.2. Service Registry serializer/deserializer 配置属性


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

SchemaResolver 接口

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

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

SCHEMA_RESOLVER

apicurio.registry.schema-resolver

由序列化器和反序列化器使用。实施 SchemaResolver 的完全限定 Java 类名称。

字符串

io.apicurio.registry.resolver.DefaultSchemaResolver

注意

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

DefaultSchemaResolver 类

您可以使用 DefaultSchemaResolver 来配置功能,例如:

  • 访问 registry API
  • 如何在 registry 中查找工件
  • 如何将工件信息写入和读取 Kafka 中的工件信息
  • 反序列化器的回退选项
配置 registry API 访问选项

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

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

REGISTRY_URL

apicurio.registry.url

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

字符串

None

AUTH_SERVICE_URL

apicurio.auth.service.url

由序列化器和反序列化器使用。身份验证服务的 URL。使用 OAuth 客户端凭据流访问安全 registry 时是必需的。

字符串

None

AUTH_TOKEN_ENDPOINT

apicurio.auth.service.token.endpoint

由序列化器和反序列化器使用。令牌端点的 URL。在访问安全 registry 时,没有指定 AUTH_SERVICE_URL 时需要。

字符串

None

AUTH_REALM

apicurio.auth.realm

由序列化器和反序列化器使用。访问身份验证服务的域。使用 OAuth 客户端凭据流访问安全 registry 时是必需的。

字符串

None

AUTH_CLIENT_ID

apicurio.auth.client.id

由序列化器和反序列化器使用。用于访问身份验证服务的客户端 ID。使用 OAuth 客户端凭据流访问安全 registry 时是必需的。

字符串

None

AUTH_CLIENT_SECRET

apicurio.auth.client.secret

由序列化器和反序列化器使用。用于访问身份验证服务的客户端机密。使用 OAuth 客户端凭据流访问安全 registry 时是必需的。

字符串

None

AUTH_USERNAME

apicurio.auth.username

由序列化器和反序列化器使用。访问 registry 的用户名。使用 HTTP 基本身份验证访问安全 registry 时是必需的。

字符串

None

AUTH_PASSWORD

apicurio.auth.password

由序列化器和反序列化器使用。访问 registry 的密码。使用 HTTP 基本身份验证访问安全 registry 时是必需的。

字符串

None

配置 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

字符串

None

EXPLICIT_ARTIFACT_ID

apicurio.registry.artifact.artifact-id

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

字符串

None

EXPLICIT_ARTIFACT_VERSION

apicurio.registry.artifact.version

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

字符串

None

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

仅由序列化器使用。在创建工件时出现冲突时配置客户端的行为,因为工件已存在。可用值为 FAILUPDATERETURNRETURN_OR_UPDATE

字符串

RETURN_OR_UPDATE

CHECK_PERIOD_MS

apicurio.registry.check-period-ms

由序列化器和反序列化器使用。指定在自动偏移前缓存工件的时间(毫秒)。如果设置为零,则每次都会获取工件。

java.time.Duration、非负号或整数字符串

30000

RETRY_BACKOFF_MS

apicurio.registry.retry-backoff-ms

由序列化器和反序列化器使用。如果无法从 Registry 检索模式,它可能会重试多次。此配置选项控制重试尝试之间的延迟(毫秒)。

java.time.Duration、非负号或整数字符串

300

RETRY_COUNT

apicurio.registry.retry-count

由序列化器和反序列化器使用。如果无法从 Registry 检索模式,它可能会重试多次。这个配置选项控制重试尝试次数。

非负数或整数字符串

3

USE_ID

apicurio.registry.use-id

由序列化器和反序列化器使用。将配置为使用指定的 IdOption 作为工件的标识符。选项是 globalIdcontentId。指示序列化器将指定的 ID 写入 Kafka,并指示反序列化器使用此 ID 查找模式。

字符串

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

由序列化器和反序列化器使用。启用旧的、与 Confluent 兼容的 IdHandler 实施的快捷方式。仅在 apicurio.registry.headers.enabled 设为 false 时使用。

布尔值

true

配置反序列化器回退选项

DefaultSchemaResolver 使用下列属性来为所有反序列化器配置回退提供程序。

表 8.5. 反序列化器回退提供程序的配置属性
常数属性描述类型默认

FALLBACK_ARTIFACT_PROVIDER

apicurio.registry.fallback.provider

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

字符串

io.apicurio.registry.serde.fallback.DefaultFallbackArtifactProvider

DefaultFallbackArtifactProvider 使用以下属性来配置反序列化器回退选项:

表 8.6. deserializer 回退选项的配置属性
常数属性描述类型默认

FALLBACK_ARTIFACT_ID

apicurio.registry.fallback.artifact-id

仅供反序列化器使用。设置用作回退的 artifactId,用于解析用于反序列化的工件。

字符串

None

FALLBACK_ARTIFACT_GROUP_ID

apicurio.registry.fallback.group-id

仅供反序列化器使用。设置用作回退的 groupId,用于解析用于反序列化的组。

字符串

None

FALLBACK_ARTIFACT_VERSION

apicurio.registry.fallback.version

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

字符串

None

其他资源

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

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.