8.2. Apicurio Registry serializer/deserializer 配置属性


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

SchemaResolver 接口

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

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

SCHEMA_RESOLVER

apicurio.registry.schema-resolver

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

字符串

io.apicurio.registry.resolver.DefaultSchemaResolver

注意

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

DefaultSchemaResolver class

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

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

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

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

REGISTRY_URL

apicurio.registry.url

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

字符串

None

AUTH_TOKEN_ENDPOINT

apicurio.registry.auth.service.token.endpoint

由序列化器和反序列化器使用。令牌端点的 URL。

字符串

None

AUTH_CLIENT_ID

apicurio.registry.auth.client.id

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

字符串

None

AUTH_CLIENT_SECRET

apicurio.registry.auth.client.secret

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

字符串

None

AUTH_USERNAME

apicurio.registry.auth.username

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

字符串

None

AUTH_PASSWORD

apicurio.registy.auth.password

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

字符串

None

配置 registry 查找选项

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

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

ARTIFACT_RESOLVER_STRATEGY

apicurio.registry.artifact-resolver-strategy

仅由 serializers 使用。实现 ArtifactReferenceResolverStrategy 的完全限定 Java classname,并将每个 Kafka 消息映射到 ArtifactReference (groupIdartifactId 和 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 使用。指定序列化器是否尝试为对应的组 ID 和工件 ID 在 registry 中查找最新的工件。

布尔值

false

AUTO_REGISTER_ARTIFACT

apicurio.registry.auto-register

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

布尔值,布尔值字符串

false

DEREFERENCE_SCHEMA

apicurio.registry.dereference-schema

用于指示用来解引用模式的语义。这在两个不同的情况下使用,在注册模式后,指示该范围向服务器询问架构被取消引用。它还用来指示序列化器在注册 registry 前解引用模式,但这只支持 Avro。

布尔值

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

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

java.time.Duration, non-negative Number, 或 integer String

30000

RETRY_BACKOFF_MS

apicurio.registry.retry-backoff-ms

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

java.time.Duration, non-negative Number, 或 integer String

300

RETRY_COUNT

apicurio.registry.retry-count

由序列化器和反序列化器使用。如果无法从 Registry 检索架构,它可能会重试次数。此配置选项控制重试尝试的数量。

非负号或整数字符串

3

USE_ID

apicurio.registry.use-id

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

字符串

contentId

配置 Kafka 中的读/写 registry 工件

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

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

ENABLE_HEADERS

apicurio.registry.headers.enabled

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

布尔值

false

HEADERS_HANDLER

apicurio.registry.headers.handler

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

字符串

io.apicurio.registry.serde.headers.DefaultHeadersHandler

ID_HANDLER

apicurio.registry.id-handler

由序列化器和反序列化器使用。实施 IdHandler 的类的完全限定 Java 类名称,将工件标识符写入/读取工件标识符到消息有效负载。默认为 4 字节格式,其在消息有效负载中包含 contentId。

字符串

io.apicurio.registry.serde.Default4ByteIdHandler

配置反序列化选项

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

Expand
表 8.5. deserializer 回退供应商的配置属性
常数属性描述类型默认

FALLBACK_ARTIFACT_PROVIDER

apicurio.registry.fallback.provider

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

字符串

io.apicurio.registry.serde.fallback.DefaultFallbackArtifactProvider

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

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

FALLBACK_ARTIFACT_ID

apicurio.registry.fallback.artifact-id

仅限反序列化器使用。设置用于解析用于序列化的工件的 artifactId 作为 fallback。

字符串

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 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

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

Theme

© 2025 Red Hat