22.3. カスタム Java オブジェクトでの REST、Hotfsprogs、および Memcached の相互運用性
エントリーをマーシャリングされたカスタム Java オブジェクトとしてキャッシュに保存する場合は、マーシャリングされたストレージの MediaType を使用してキャッシュを設定する必要があります。
Java Hotgitops クライアントは、JBoss マーシャリングストレージフォーマットをデフォルトとして使用し、エントリーをカスタム Java オブジェクトとしてキャッシュに保存します。
以下の例では、application/x-jboss-marshalling メディアタイプでエントリーを保存するようにキャッシュを設定します。
<distributed-cache name="my-cache">
<encoding>
<key media-type="application/x-jboss-marshalling"/>
<value media-type="application/x-jboss-marshalling"/>
</encoding>
</distributed-cache>
Protostream マーシャラーを使用する場合は、MediaType を application/x-protostream に設定します。UTF8Marshaller の場合は、MediaType を text/plain に設定します。
Hotgitops クライアントのみがキャッシュと対話する場合は、MediaType を設定する必要はありません。
REST クライアントはテキスト形式の処理に最も適しているため、キーには java.lang.String などのプリミティブを使用する必要があります。それ以外の場合は、REST クライアントは、サポートされているバイナリーエンコーディング を使用してキーを bytes[] として処理する必要があります。
REST クライアントは、XML または JSON 形式でキャッシュエントリーの値を読み取ることができます。ただし、クラスがサーバーで使用できる必要があります。
Memcached クライアントからデータを読み書きするには、キーに java.lang.String を使用する必要があります。値は保存され、マーシャリングされたオブジェクトとして返されます。
一部の Java Memcached クライアントでは、オブジェクトをマーシャリングおよびアンマーシャリングするデータトランスフォーマーが許可されます。また、Memcached サーバーモジュールを設定して、レスポンスを言語に依存しない 'JSON' などの異なる形式でエンコードすることもできます。これにより、キャッシュのストレージフォーマットが Java 固有の場合でも、Java 以外のクライアントはデータと対話できます。Red Hat Data Grid Memcached サーバーモジュールの「 クライアントエンコーディング の詳細」を参照してください。
Java オブジェクトをキャッシュに保存するには、エンティティークラスを Data Grid にデプロイする必要があります。「 エンティティークラスのデプロイ 」を参照してください。
| この設定は、以下と互換性があります。 | |
|---|---|
| REST クライアント | はい |
| Java Hot Rod クライアント | はい |
| Memcached クライアント | はい |
| Java 以外の Hot Rod クライアント | ❌ |
| クエリーおよびインデックス化 | ❌ |
| カスタム Java オブジェクト | はい |