ミラーキャッシュトポロジ
ミラートポロジでは、キャッシュ クラスターに 3 つを超えるノードを含めることはできません。一度に 2 つのノードのうち 1 つだけがアクティブ ノードとして機能し、もう 1 つはパッシブ ノードとして機能します。パッシブ ノードはバックアップ ノードとも呼ばれ、単一障害点を軽減します。アクティブ ノードがダウンすると、パッシブ ノードがアクティブ ノードの役割を引き継ぎ、このトポロジ内に単一障害点が存在しないことが保証されます。読み取り操作と書き込み操作は両方ともアクティブ ノードで実行され、書き込みはバックアップ ノードまたはパッシブ ノードに非同期的に複製されます。ただし、複数のレプリカを保持できるレプリケート トポロジとは異なり、このトポロジでのレプリケーションの程度は 1 つのノードに制限されます。
Note
この機能は以下でも利用できます NCache Professional.
ミラー化されたキャッシュクラスターは、ユーザーの負荷が増大するとは予想されない少量のデータをキャッシュするのに適しています。 すべてのクライアント操作はクラスターのアクティブノードでのみ実行されるため、トポロジは読み取り操作または書き込み操作のいずれに対してもスケーラブルではありません。 ただし、トポロジは、バックアップノードへのレプリケーションを通じてある種の高可用性を提供します。 アクティブノードがクラスターを離れると、パッシブノードが自動的にアクティブノードの役割を引き継ぎ、すべてのクライアントアプリケーションがこの新しいアクティブノードとの通信を開始します。
ミラー化キャッシュでのアクティブ ノードの選択
クラスターの最上位ノードは、クラスターのアクティブノードと見なされます。 クラスタが停止または実行されているときにアクティブノードを選択することもできますが、実行中のクラスタのアクティブノードを変更した場合、変更を有効にするにはクラスタを再起動する必要があります。 アクティブノードがクラスターを離れると、対応するパッシブノードが自動的にアクティブノードになります。 以前にアクティブだったノードがオンラインに戻ると、パッシブノードとしてクラスターに参加します。
非同期レプリケーション
クライアントはクラスターのアクティブ ノードのみに直接接続しますが、クラスターの XNUMX 番目のノード (パッシブ ノード) にはアクティブ ノードのバックアップがあります。 クラスターのアクティブ ノードは、パッシブ ノード上のバックアップを維持する責任があります。 アクティブ ノード上のすべての書き込み操作は、バックグラウンド キューを介してパッシブ ノードに複製されます。 すべての書き込み操作はキューに入れられ、専用のバックグラウンド スレッドがこのキューからデータを分割して取得し、パッシブ ノードに複製します。 クライアントは、アクティブ ノード上で書き込み操作が正常に実行された直後に、書き込み操作の応答を受け取ります。 操作はキューに入れられ、後でパッシブ ノードに複製されます。
Note
操作がアクティブ ノードからパッシブ ノードに非同期的に複製される間、クライアント アプリケーションのパフォーマンスは低下しないことに注意してください。
データのレプリケーションは非同期で行われるため、データが失われる可能性があります。 キューに入れられた操作を複製せずにアクティブ ノードがダウンすると、データ損失が発生します。
コーディネーターサーバーの役割
キャッシュ クラスターのアクティブ サーバー ノードは、コーディネーター サーバーとして機能します。 コーディネーター サーバーは、状態転送、後書き操作、データの無効化 (有効期限と依存関係) などの複数のタスクを実行する責任があります。キャッシュからアイテムを削除することを決定した後、他のノード (パッシブ ノード) に要求します。キャッシュ ストアからも削除します。 コーディネーター サーバー (アクティブ ノード) がキャッシュ クラスターから離れると、パッシブ ノードがコーディネーター サーバーとなり、その役割を再開します。
クライアントの接続性
ミラー トポロジでは、クライアントはクラスターのアクティブ ノードのみに接続します。 つまり、クライアント接続はクラスターのパッシブ ノードでブロックされます。 クライアントは、クラスターの両方のノード (アクティブおよびパッシブ) に同じデータが含まれているため、それらのノードとの接続を確立する必要はありません。 前述したように、アクティブ ノードがダウンすると、パッシブ ノードが自動的にアクティブ ノードになり、クライアントは自動的にアクティブ ノードとの接続を確立します。
状態転送
状態転送は、XNUMX番目のノードがミラーリングされたトポロジのキャッシュクラスターに参加したときにトリガーされます。 この場合、コーディネーターサーバー(アクティブノード)は、そのデータをXNUMX番目の(パッシブ)ノードと同期します。