第8章 Java クライアントでの Kafka シリアライザー/デシリアライザーの設定

本章では、プロデューサーおよびコンシューマー Java クライアントアプリケーションで Kafka SerDes を設定する方法について詳しく説明します。

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. Confluent 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. アーティファクトリーゾルバーストラテジーを実装し、Kafka SerDe とアーティファクト ID の間をマッピングする Java クラス。デフォルトはトピック ID ストラテジーです。これはシリアライザークラスによってのみ使用されます。
  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 を設定する方法は、以下を参照してください。