第 8 章 在 Java 客户端中配置 Kafka serializers/deserializers
本章介绍了如何在制作者和消费者 Java 客户端应用程序中配置 Kafka SerDes 的详细信息:
- 第 8.1 节 “客户端应用程序中的服务 Registry serializer/deserializer 配置”
- 第 8.2 节 “Service Registry serializer/deserializer 配置属性”
- 第 8.3 节 “如何配置不同的客户端 serializer/deserializer 类型”
- 第 8.3.1 节 “使用 Service Registry 配置 Avro SerDes”
- 第 8.3.2 节 “使用 Service Registry 配置 JSON Schema SerDes”
- 第 8.3.3 节 “使用 Service Registry 配置 Protobuf SerDes”
8.1. 客户端应用程序中的服务 Registry serializer/deserializer 配置 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
您可以使用本节所示的示例常量在客户端应用程序中直接配置特定的客户端 serializer/deserializer (SerDe)服务和 schema 查找策略。另外,您可以在文件或实例中配置对应的 Service Registry 应用程序属性。
以下小节显示了常用的 SerDe constants 和 配置选项示例。
配置 SerDe 服务
public class SerdeConfig { public static final String REGISTRY_URL = "apicurio.registry.url"; public static final String ID_HANDLER = "apicurio.registry.id-handler"; public static final String ENABLE_CONFLUENT_ID_HANDLER = "apicurio.registry.as-confluent";
public class SerdeConfig {
public static final String REGISTRY_URL = "apicurio.registry.url";
public static final String ID_HANDLER = "apicurio.registry.id-handler";
public static final String ENABLE_CONFLUENT_ID_HANDLER = "apicurio.registry.as-confluent";
- Service Registry 所需的 URL。
-
扩展 ID 处理以支持其他 ID 格式,并将它们与 Service Registry SerDe 服务兼容。例如,将默认 ID 格式从
Long
更改为Integer
支持 Confluent ID 格式。 -
简化 Confluent ID 的处理。如果设置为
true
,则Integer
用于全局 ID 查找。该设置不应与ID_HANDLER
选项搭配使用。
配置 SerDe 查找策略
public class SerdeConfig { public static final String ARTIFACT_RESOLVER_STRATEGY = "apicurio.registry.artifact-resolver-strategy"; public static final String SCHEMA_RESOLVER = "apicurio.registry.schema-resolver"; ...
public class SerdeConfig {
public static final String ARTIFACT_RESOLVER_STRATEGY = "apicurio.registry.artifact-resolver-strategy";
public static final String SCHEMA_RESOLVER = "apicurio.registry.schema-resolver";
...
- 实现工件解析器策略并在 Kafka SerDe 和工件 ID 之间映射的 Java 类。默认为主题 ID 策略。这仅由 serializer 类使用。
-
实施架构解析器的 Java 类。默认为
DefaultSchemaResolver
。这由 serializer 和 deserializer 类使用。
配置 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"; public static final String REGISTRY_CONVERTER_DESERIALIZER_PARAM = "apicurio.registry.converter.deserializer";
public class SerdeBasedConverter<S, T> extends SchemaResolverConfigurer<S, T> implements Converter, Closeable {
public static final String REGISTRY_CONVERTER_SERIALIZER_PARAM = "apicurio.registry.converter.serializer";
public static final String REGISTRY_CONVERTER_DESERIALIZER_PARAM = "apicurio.registry.converter.deserializer";
- 与 Service Registry Kafka 转换器一起使用所需的 serializer。
- 与 Service Registry Kafka 转换器一起使用所需的 deserializer。
配置不同架构类型
有关如何为不同的模式技术配置 SerDe 的详情,请查看以下操作: