15.2. クラスタリングモード

JBoss EAP 6 で Infinispan を使用すると、2 つの方法でクラスタリングを設定できます。ご使用のアプリケーションに使用する適切な方法は、要件によって異なります。各モードでは可用性、一貫性、信頼性、およびスケーラビリティーのトレードオフが発生します。クラスタリングモードを選択する前に、ネットワークで最も重要な点を特定し、これらの要件のバランスを取ることが必要となります。
レプリケートモード

レプリケートモードはクラスターの新しいインスタンスを自動的に検出し、追加します。これらのインスタンスに加えられた変更は、クラスター上のすべてのノードにレプリケートされます。ネットワークでレプリケートされる情報量が多いため、通常レプリケートモードは小型のクラスターでの使用に最も適しています。UDP マルチキャストを使用するよう Infinispan を設定すると、ネットワークトラフィックの輻輳をある程度軽減できます。

ディストリビューションモード

ディストリビューションモードでは、Infinispan はクラスターを線形にスケールできます。ディストリビューションモードは一貫性のあるハッシュアルゴリズムを使用して、クラスター内で新しいノードを配置する場所を決定します。保持する情報のコピー数は設定可能です。保持するコピー数、データの永続性、およびパフォーマンスにはトレードオフが生じます。保持するコピー数が多いほどパフォーマンスへの影響が大きくなりますが、サーバーの障害時にデータを損失する可能性は低くなります。ハッシュアルゴリズムは、メタデータのマルチキャストや保存を行わずにエントリーを配置し、ネットワークトラフィックを軽減します。

同期および非同期のレプリケーション

レプリケーションは同期または非同期的に実行でき、選択されるモードは要件やアプリケーションによって異なります。同期レプリケーションでは、ユーザーのリクエストを処理するスレッドはレプリケーションが正常に終了するまでブロックされます。レプリケーションが正常に行われた場合のみ応答がクライアントに送信され、スレッドがリリースされます。同期レプリケーションはクラスターの各ノードからの応答を必要とするため、ネットワークトラフィックに影響します。しかし、クラスターのすべてのノードへ確実に変更が加えられる利点があります。

非同期レプリケーションはバックグラウンドで実行されます。Infinispan は、バックグラウンドスレッドがレプリケーションを実行するために使用されるレプリケーションキューを実装します。レプリケーションは時間またはキューのサイズによって引き起こされます。レプリケーションキューを使用すると、クラスターノード間の対話が発生しないため、パフォーマンスが向上します。非同期レプリケーションの欠点は、正確性が低いことです。失敗したレプリケーションはログに書き込まれ、リアルタイムで通知されません。