第5章 データコンテナーの設定
Data Grid がエントリーを保存するデータコンテナーを設定します。キャッシュエントリーのエンコーディングを指定し、データをオフヒープメモリーに保存し、エビクションまたは有効期限ポリシーを使用してアクティブなエントリーのみをメモリーに維持します。
5.1. Configuring Encoding for Data Grid Caches
キャッシュとの間で書き込みおよび読み取りを行うときに Data Grid がデータをエンコードするために使用する MediaType を定義します。
MediaType を定義するときに、Data Grid にデータの形式を指定します。
Data Grid Console、Hot Rod クライアント、および REST クライアントを同じように使用する場合は、application/x-protostream
を指定して、DataGrid がデータを Protobuf 形式でエンコードするようにします。
手順
Data Grid キャッシュ設定で、キーと値の MediaType を指定します。
-
宣言的に行う場合:
encoding
属性を設定します。 -
プログラム的に行う場合:
encoding()
メソッドを使用します。
-
宣言的に行う場合:
宣言的に行う場合の例
- キーと値に同じエンコーディングを使用します。
<local-cache> <encoding media-type="application/x-protostream"/> </local-cache>
- キーと値に異なるエンコーディングを使用します。
<cache> <encoding> <key media-type="application/x-java-object"/> <value media-type="application/xml; charset=UTF-8"/> </encoding> </cache>
プログラムで行う場合の例
- キーと値に同じエンコーディングを使用します。
ConfigurationBuilder cfg = new ConfigurationBuilder(); cfg .encoding() .mediaType("application/x-protostream") .build());
- キーと値に異なるエンコーディングを使用します。
ConfigurationBuilder cfg = new ConfigurationBuilder(); cfg.encoding().key().mediaType("text/plain"); cfg.encoding().value().mediaType("application/json");
5.1.1. Protobuf 形式でのデータの保存
Protobuf でエンコードされたエントリーとしてデータをキャッシュに保存すると、プラットフォームに依存しない設定が提供され、任意のクライアントからキャッシュ操作を実行できます。
Data Grid Search のインデックスを設定すると、Data Grid は application/x-protostream
メディアタイプでキーと値を自動的に保存します。
手順
application/x-protostream
を、以下のようにキーと値の MediaType として指定します。<distributed-cache name="mycache"> <encoding> <key media-type="application/x-protostream"/> <value media-type="application/x-protostream"/> </encoding> </distributed-cache>
- クライアントを設定します。
Hot Rod クライアントは、エンティティーおよびクライアントマーシャラーを記述する Protocol Buffers スキーマ定義を登録する必要があります。
Data Grid は application/x-protostream
と application/json
の間で変換されるため、REST クライアントは次のヘッダーを送信するだけで JSON 形式のデータを読み書きできます。
-
Accept: application/json
(読み取り操作の場合) -
Content-Type: application/json
(書き込み操作の場合)