第 8 章 在 Java 客户端中配置 Kafka 序列化器/反序列化器


本章详细介绍了如何在生成者和消费者 Java 客户端应用程序中配置 Kafka SerDe:

8.1. 客户端应用程序中的 Service Registry 序列化器/反序列化配置

您可以使用本节中显示的示例常量配置特定的客户端序列化器/反序列化器(SerDe)服务和模式查找策略。另外,您可以在文件或实例中配置对应的 Service Registry 应用程序属性。

以下小节演示了常用的 SerDe 常量和配置选项的示例。

配置 SerDe 服务

public class SerdeConfig {

   public static final String REGISTRY_URL = "apicurio.registry.url"; 1
   public static final String ID_HANDLER = "apicurio.registry.id-handler"; 2
   public static final String ENABLE_CONFLUENT_ID_HANDLER = "apicurio.registry.as-confluent"; 3
  1. Service Registry 所需的 URL。
  2. 扩展 ID 处理以支持其他 ID 格式,并使其与 Service Registry SerDe 服务兼容。例如,将默认 ID 格式从 Long 改为 Integer 支持 Confluent ID 格式。
  3. 简化了对一致性 ID 的处理。如果设置为 true,则使用 Integer 用于全局 ID 查找。设置不应与 ID_HANDLER 选项一起使用。

其他资源

配置 SerDe 查找策略

public class SerdeConfig {

   public static final String ARTIFACT_RESOLVER_STRATEGY = "apicurio.registry.artifact-resolver-strategy"; 1
   public static final String SCHEMA_RESOLVER = "apicurio.registry.schema-resolver"; 2
...
  1. 实施工件解析器策略的 Java 类,并在 Kafka SerDe 和工件 ID 之间映射。默认为主题 ID 策略。这仅由 serializer 类使用。
  2. 实施架构解析器的 Java 类。默认为 DefaultSchemaResolver。这由序列化器和反序列化类使用。

配置 Kafka 转换器

public class SerdeBasedConverter<S, T> extends SchemaResolverConfigurer<S, T> implements Converter, Closeable {

   public static final String REGISTRY_CONVERTER_SERIALIZER_PARAM = "apicurio.registry.converter.serializer"; 1
   public static final String REGISTRY_CONVERTER_DESERIALIZER_PARAM = "apicurio.registry.converter.deserializer"; 2
  1. 与 Service Registry Kafka 转换器搭配使用所需的序列化器。
  2. 与 Service Registry Kafka 转换器搭配使用所需的反序列化器。

其他资源

配置不同模式类型

有关如何为不同模式技术配置 SerDe 的详情,请参考以下内容:

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.