13.4.2. Service Registry を使用した JSON スキーマ SerDe の設定
Service Registry は、JSON スキーマを可能な限り簡単に使用できるように、JSON スキーマの Kafka クライアントシリアライザーおよびデシリアライザークラスを提供します。
-
io.apicurio.registry.utils.serde.JsonSchemaKafkaSerializer
-
io.apicurio.registry.utils.serde.JsonSchemaKafkaDeserializer
Apache Avro とは異なり、JSON スキーマは実際にはシリアライズテクノロジーではありません。検証テクノロジーです。その結果、JSON スキーマの設定オプションは大きく異なります。たとえば、データは常に JSON としてエンコードされるため、エンコーディングオプションはありません。
JSON スキーマシリアライザーの設定
JSON スキーマシリアライザークラスを以下の方法で設定できます。
- URL としての Service Registry の場所
- アーティファクト ID ストラテジー
- グローバル ID ストラテジー
- 検証 enabled/無効
標準以外の設定プロパティーは、JSON スキーマ検証が有効または無効であるかです。検証機能はデフォルトで無効になっていますが、apicurio.registry.serdes.json-schema.validation-enabled
を "true"
に設定して有効にできます。以下に例を示します。
props.putIfAbsent(JsonSchemaSerDeConstants.REGISTRY_JSON_SCHEMA_VALIDATION_ENABLED, "true")`
JSON スキーマデシリアライザーの設定
JSON スキーマデシリアライザークラスを以下の方法で設定できます。
- URL としての Service Registry の場所
- 検証 enabled/無効
デシリアライザーは、設定も簡単です。スキーマをロードできるように、Service Registry の場所を指定する必要があります。他の設定は、検証を実行するかどうかだけです。これらの設定プロパティーはシリアライザーの場合と同じです。
デシリアライザーの検証は、シリアライザーが Kafka メッセージでグローバル ID を渡す場合にのみ機能します。これは、シリアライザーで検証が有効になっている場合にのみ発生します。