搜索

8.2. Service Registry serializer/deserializer 配置属性

download PDF

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

SchemaResolver 接口

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

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

SCHEMA_RESOLVER

apicurio.registry.schema-resolver

由 serializers 和 deserializers 使用。实现 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

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

字符串

None

AUTH_SERVICE_URL

apicurio.auth.service.url

由 serializers 和 deserializers 使用。身份验证服务的 URL。使用 OAuth 客户端凭证流访问安全 registry 时需要此项。

字符串

None

AUTH_TOKEN_ENDPOINT

apicurio.auth.service.token.endpoint

由 serializers 和 deserializers 使用。令牌端点的 URL。没有指定安全 registry 和 AUTH_SERVICE_URL 时需要此项。

字符串

None

AUTH_REALM

apicurio.auth.realm

由 serializers 和 deserializers 使用。realm 以访问身份验证服务。使用 OAuth 客户端凭证流访问安全 registry 时需要此项。

字符串

None

AUTH_CLIENT_ID

apicurio.auth.client.id

由 serializers 和 deserializers 使用。用于访问身份验证服务的客户端 ID。使用 OAuth 客户端凭证流访问安全 registry 时需要此项。

字符串

None

AUTH_CLIENT_SECRET

apicurio.auth.client.secret

由 serializers 和 deserializers 使用。用于访问身份验证服务的客户端机密。使用 OAuth 客户端凭证流访问安全 registry 时需要此项。

字符串

None

AUTH_USERNAME

apicurio.auth.username

由 serializers 和 deserializers 使用。访问 registry 的用户名。使用 HTTP 基本身份验证访问安全 registry 时需要此项。

字符串

None

AUTH_PASSWORD

apicurio.auth.password

由 serializers 和 deserializers 使用。访问 registry 的密码。使用 HTTP 基本身份验证访问安全 registry 时需要此项。

字符串

None

registry 查找选项的配置

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

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

ARTIFACT_RESOLVER_STRATEGY

apicurio.registry.artifact-resolver-strategy

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

字符串

io.apicurio.registry.serde.strategy.TopicIdStrategy

EXPLICIT_ARTIFACT_GROUP_ID

apicurio.registry.artifact.group-id

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

字符串

None

EXPLICIT_ARTIFACT_ID

apicurio.registry.artifact.artifact-id

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

字符串

None

EXPLICIT_ARTIFACT_VERSION

apicurio.registry.artifact.version

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

字符串

None

FIND_LATEST_ARTIFACT

apicurio.registry.find-latest

仅供 serializers 使用。指定 serializer 是否尝试在 registry 中查找对应组 ID 和工件 ID 的最新工件。

布尔值

false

AUTO_REGISTER_ARTIFACT

apicurio.registry.auto-register

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

布尔值,布尔值字符串

false

AUTO_REGISTER_ARTIFACT_IF_EXISTS

apicurio.registry.auto-register.if-exists

仅供 serializers 使用。当存在冲突创建工件时,配置客户端的行为,因为工件已存在。可用值为 FAILUPDATERETURNRETURN_OR_UPDATE

字符串

RETURN_OR_UPDATE

CHECK_PERIOD_MS

apicurio.registry.check-period-ms

由 serializers 和 deserializers 使用。指定在自动驱除前缓存工件的时长(毫秒)。如果设置为零,则每次获取工件。

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

30000

RETRY_BACKOFF_MS

apicurio.registry.retry-backoff-ms

由 serializers 和 deserializers 使用。如果无法从 Registry 检索模式,它可以重试多次。此配置选项控制重试尝试之间的延迟(毫秒)。

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

300

RETRY_COUNT

apicurio.registry.retry-count

由 serializers 和 deserializers 使用。如果无法从 Registry 检索模式,它可以重试多次。这个配置选项控制重试尝试的数量。

非负数或整数字符串

3

USE_ID

apicurio.registry.use-id

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

字符串

globalId

配置 Kafka 中的读/写 registry 工件

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

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

ENABLE_HEADERS

apicurio.registry.headers.enabled

由 serializers 和 deserializers 使用。将工件标识符配置为 Kafka 消息标头,而不是在消息有效负载中。

布尔值

true

HEADERS_HANDLER

apicurio.registry.headers.handler

由 serializers 和 deserializers 使用。实现 HeadersHandler 以及到/从 Kafka 消息标头写入/读取工件标识的完全限定的 Java 类名称,。

字符串

io.apicurio.registry.serde.headers.DefaultHeadersHandler

ID_HANDLER

apicurio.registry.id-handler

由 serializers 和 deserializers 使用。实现 IdHandler 的类的完全限定域名,并将工件标识符写入/从消息有效负载写入/读取。仅在 apicurio.registry.headers.enabled 设为 false 时使用。

字符串

io.apicurio.registry.serde.DefaultIdHandler

ENABLE_CONFLUENT_ID_HANDLER

apicurio.registry.as-confluent

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

布尔值

true

配置反序列化器回退选项

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

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

FALLBACK_ARTIFACT_PROVIDER

apicurio.registry.fallback.provider

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

字符串

io.apicurio.registry.serde.fallback.DefaultFallbackArtifactProvider

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

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

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.