13.9. Hot Rod Java クライアント
Hot Rod はバイナリーの言語非依存プロトコルです。Java クライアントは、Hot Rod Java Client API を使用して Hot Rod プロトコルを介してサーバーと対話できます。
13.9.1. Hot Rod Java クライアントのダウンロード リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JBoss Data Grid Hot Rod Java クライアントをダウンロードするには、次の手順に従ってください。
手順13.2 Hot Rod Java クライアントのダウンロード
- カスタマーポータル (https://access.redhat.com) にログインします。
- ページ最上部にある ボタンをクリックします。
- 製品のダウンロード ページで をクリックします。
- バージョン: ドロップダウンメニューから適切な JBoss Data Grid バージョンを選択します。
- Red Hat JBoss Data Grid ${VERSION} Hot Rod Java Client エントリーを探し、対応する リンクをクリックします。
13.9.2. Hot Rod Java クライアントの設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Hot Rod Java クライアントは、プログラムを使用したり、設定ファイルまたはプロパティーファイルを外部的に使用したりして設定されます。次の例は、利用可能な Java 対応 API を使用したクライアントインスタンスの作成を示しています。
例13.1 クライアントインスタンスの作成
プロパティーファイルを使用した Hot Rod Java クライアントの設定
Hot Rod Java クライアントを設定するには、クラスパス上の hotrod-client.properties ファイルを編集します。
次の例は、
hotrod-client.properties ファイルの内容を示しています。
例13.2 設定
注記
TCP KEEPALIVE 設定は、 例で示された設定プロパティー (infinispan.client.hotrod.tcp_keep_alive = true/false) または org.infinispan.client.hotrod.ConfigurationBuilder.tcpKeepAlive() メソッドを使用したプログラムによって Hot Rod Java クライアントで有効/無効になります。
Red Hat JBoss Data Grid でプロパティーファイルを使用するには、次の 2 つのコンストラクターのいずれかを使用する必要があります。
new RemoteCacheManager(boolean start)new RemoteCacheManager()
13.9.3. Hot Rod Java クライアント基本 API リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のコードは、クライアント API を使用して Hot Rod Java クライアントで Hot Rod サーバーから情報を保存または取得する方法を示しています。この例では、Hot Rod サーバーがデフォルトの場所
localhost:11222 にバインドするよう起動されていることを前提とします。
例13.3 基本 API
RemoteCacheManager は、DefaultCacheManager に対応し、両方とも BasicCacheContainer を実装します。
この API は、ローカルコールから Hot Rod を介したリモートコールへの移行を実現します。これは、
DefaultCacheManager と RemoteCacheManager を切り替えることによって行うことができ、共通の BasicCacheContainer インターフェースによって単純化されます。
すべてのキーは、
keySet() メソッドを使用してリモートキャッシュから取得できます。リモートキャッシュが分散キャッシュである場合は、サーバーによりマップ/削減ジョブが開始され、クラスタノードからすべてのキーが取得され、すべてのキーがクライアントに返されます。
キーの数が多い場合は、このメソッドを注意して使用してください。
Set keys = remoteCache.keySet();
Set keys = remoteCache.keySet();
13.9.4. Hot Rod Java クライアントバージョン API リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
データの整合性を確保するために、Hot Rod は各変更を一意に識別するバージョン番号を保存します。
getVersioned を使用して、クライアントはキーと現在のバージョンに関連付けられた値を取得できます。
Hot Rod Java クライアントを使用する場合、
RemoteCacheManager は、リモートクラスタ上の名前付きまたはデフォルトのキャッシュにアクセスする RemoteCache インターフェースのインスタンスを提供します。これにより、バージョン API を含む、新しいメソッドを追加する Cache インターフェースが拡張されます。
例13.4 バージョンメソッドの使用
例13.5 置換の使用
remoteCache.put("car", "ferrari");
VersionedValue valueBinary = remoteCache.getVersioned("car");
assert remoteCache.replaceWithVersion("car", "lamborghini", valueBinary.getVersion());
remoteCache.put("car", "ferrari");
VersionedValue valueBinary = remoteCache.getVersioned("car");
assert remoteCache.replaceWithVersion("car", "lamborghini", valueBinary.getVersion());