6.3. クラスターモード
Red Hat JBoss Data Grid は、次のクラスターモードを提供します。
- レプリケーションモードは、クラスターのすべてのキャッシュインスタンスにわたって追加されたエントリーをレプリケートします。
- インバリデーションモードはデータを共有しませんが、無効なエントリーの削除を開始するようリモートキャッシュに伝えます。
- ディストリビューションモードは、クラスターの全ノード上ではなく、ノードのサブセット上の各エントリーを保管します。
ネットワーク通信に同期または非同期トランスポートを使用するよう、クラスターモードに追加設定することが可能です。
6.3.1. 非同期および同期の操作
クラスターモード (インバリデーション、レプリケーション、ディストリビューションなど) が使用されると、データが同期的または非同期的に他のノードへ伝搬されます。
同期モードが使用されると、送信側はスレッドの継続を許可する前に受信側からの応答を待ちます。非同期モードでは、データを送信しても、クラスターの他のノードからの応答を待たずに操作を継続します。
非同期モードは一貫性よりも速度を優先するため、スティッキーセッションが有効な HTTP セッションレプリケーションなどのユースケースに適しています。このようなセッション (他のユースケースではデータ) は、ノードに障害が発生しない限り常に同じクラスターノード上でアクセスされます。
6.3.2. キャッシュモードのトラブルシューティング
6.3.2.1. ReadExternal の無効なデータ
Cache.putAsync()
を使用する場合、シリアライズを開始するとオブジェクトが変更される可能性があります。それによってデータストリームが破損されると、無効なデータが readExternal
に渡されます。このような場合、オブジェクトへのアクセスを同期化すると、この問題を解決することができます。
6.3.2.2. 非同期通信について
Red Hat JBoss Data Grid では、ローカルモードは
local-cache
によって表され、ディストリビューションモードは distributed-cache
、レプリケーションモードは replicated-cache
によって表されます。これらの各要素には、mode
プロパティーが含まれ、同期通信の場合は SYNC
、非同期通信の場合は SYNC
に値を設定することができます。
例6.1 非同期通信の設定例
<replicated-cache name="default" start="EAGER" mode="SYNC" batching="false" statistics="true"> ... </replicated-cache>
注記
この設定は、JBoss Data Grid のどちらの使用モード (ライブラリーモードとリモートクライアントサーバーモード) でも有効です。
6.3.2.3. クラスター物理アドレスの読み出し
クラスターの物理アドレスの読み出し方法
インスタンスメソッド呼び出しを使用して物理アドレスを読み出すことができます。たとえば、AdvancedCache.getRpcManager().getTransport().getPhysicalAddresses()
のように読み出します。