9.4. スキーマ検索のストラテジー


Service Registry ストラテジー は、Service Registry でメッセージスキーマが登録されるアーティファクト ID またはグローバル ID を判断するために、Kafka クライアントシリアライザー/デシリアライザーによって使用されます。

特定のトピックおよびメッセージで、以下の Java クラスの実装を使用できます。

  • ArtifactIdStrategy、アーティファクト ID を返す。
  • GlobalIdStrategy、グローバル ID を返す。

返されるアーティファクト ID は、メッセージの キー または のどちらがシリアライズされるかによって異なります。

ストラテジー のクラスは、io.apicurio.registry.utils.serde.strategy パッケージにまとめられています。

デフォルトのストラテジー、TopicIdStrategy は、メッセージを受信する Kafka トピックと同じ名前の Service Registry アーティファクトを検索します。

以下は例になります。

public String artifactId(String topic, boolean isKey, T schema) {
    return String.format("%s-%s", topic, isKey ? "key" : "value");
}
  • topic パラメーターは、メッセージを受信する Kafka トピックの名前です。
  • isKey パラメーター は、メッセージキーがシリアライズされる場合は true、メッセージ値がシリアライズされる場合は false です。
  • schema パラメーターは、シリアライズ/デシリアライズされるメッセージのスキーマです。
  • 返される artifactID は、スキーマが Service Registry に登録される ID です。

使用する検索アップストラテジーは、スキーマを保存する方法と場所によって異なります。たとえば、同じ Avro メッセージタイプを持つ Kafka トピックが複数ある場合、レコード ID を使用するストラテジーを使用することがあります。

アーティファクト ID を返すストラテジー

これらのストラテジーは、ArtifactIdStrategy の実装に基づいてアーティファクト ID を返します。

RecordIdStrategy
スキーマのフルネームを使用する Avro 固有のストラテジー。
TopicRecordIdStrategy
トピック名およびスキーマのフルネームを使用する Avro 固有のストラテジー。
TopicIdStrategy
(デフォルト) トピック名と、key または value 接尾辞を使用するストラテジー。
SimpleTopicIdStrategy
トピック名のみを使用する単純なストラテジー。

グローバル ID を返すストラテジー

これらのストラテジーは、GlobalIdStrategy の実装に基づいてグローバル ID を返します。

FindLatestIdStrategy
アーティファクト ID に基づいて最新のスキーマバージョンのグローバル ID を返すストラテジー。
FindBySchemaIdStrategy
アーティファクト ID に基づいてスキーマコンテンツと一致する、グローバル ID を返すストラテジー。
GetOrCreateIdStrategy
アーティファクト ID に基づいて最新スキーマの取得を試み、スキーマが存在しなければ新規スキーマを作成するストラテジー。
AutoRegisterIdStrategy
スキーマを更新し、更新されたスキーマのグローバル ID を使用するストラテジー。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.