1.2. Protobuf キャッシュエンコーディング


Protocol Buffers(Protobuf) は、構造化されたデータの軽量バイナリーメディアタイプです。キャッシュエンコーディングとして、Protobuf は Hot Rod および REST エンドポイントの両方について、異なるプログラミング言語でのクライアントアプリケーション間で優れたパフォーマンスと相互運用性を提供します。

Data Grid は ProtoStream ライブラリーを使用して、キャッシュを application/x-protostream メディアタイプで Protobuf としてエンコードします。

以下の例は、Person オブジェクトを記述する Protobuf メッセージを示しています。

message Person {
    optional int32 id = 1;
    optional string name = 2;
    optional string surname = 3;
    optional Address address = 4;
    repeated PhoneNumber phoneNumbers = 5;
    optional uint32 age = 6;
    enum Gender {
        MALE = 0;
        FEMALE = 1;
    }
}
Copy to Clipboard Toggle word wrap
注記

Protobuf は循環オブジェクトをサポートしていません。Java シリアライゼーションまたは JBoss Marshalling を使用して循環オブジェクトをマーシャリングします。

相互運用性

Protobuf エンコーディングは言語に依存しないことから、Data Grid は Java、C++、C#、Python、Go などで書かれたクライアントアプリケーションからのリクエストを処理できます。

Protobuf を使用すると、異なるリモートエンドポイントのクライアント (Hot Rod または REST) が同じデータで操作できます。REST API を使用するため、Data Grid Console を使用して Protobuf でエンコードされたキャッシュにアクセスして作業できます。

注記

application/x-protostream 以外のバイナリーエンコーディングで Data Grid Console を使用することはできません。

アプリケーションとサービス間の通信を可能にするため、すべての Red Hat テクノロジーとの統合には、常に Protobuf キャッシュエンコーディングを application/x-protostream メディアタイプと共に使用する必要があります。

クエリー

Data Grid には、高速で信頼できるクエリーのために、キャッシュ内のデータの構造化表現が必要です。Ickle クエリー言語でキャッシュを検索するには、オブジェクトを記述する Protobuf スキーマを登録します。

カスタムタイプ

Data Grid には、String および Integer を含む頻繁に使用されるタイプに対するネイティブサポートを持つ ProtoStream API の実装が含まれています。カスタムタイプをキャッシュに保存する場合は、ProtoStream マーシャリングを使用して、シリアル化コンテキストを生成して Data Grid で登録し、オブジェクトをマーシャリングできるようにします。

1.2.1. ProtoStream としてのキャッシュのエンコード

ProtoStream ライブラリーを使用して、キャッシュエントリーを Protocol Buffers(Protobuf) として保存するように Data Grid を設定します。

手順

  • キーおよび値の application/x-protostream メディアタイプを指定します。

宣言的

<distributed-cache>
   <encoding>
      <key media-type="application/x-protostream"/>
      <value media-type="application/x-protostream"/>
   </encoding>
</distributed-cache>
Copy to Clipboard Toggle word wrap

プログラマティック

//Create cache configuration that encodes keys and values as ProtoStream
ConfigurationBuilder builder = new ConfigurationBuilder();
builder.clustering().cacheMode(CacheMode.DIST_SYNC)
       .encoding().key().mediaType("application/x-protostream")
       .encoding().value().mediaType("application/x-protostream");
Copy to Clipboard Toggle word wrap

または、キーと値に同じエンコーディングを使用できます。

宣言的

<encoding media-type="application/x-protostream"/>
Copy to Clipboard Toggle word wrap

プログラマティック

.encoding().mediaType("application/x-protostream");
Copy to Clipboard Toggle word wrap

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る