NCache .NET/ のインメモリ分散キャッシュです。.NET Core、Java、Python、NodeJS、および Scala アプリケーションで、非常に高速でスケーラブルです。 ミッション クリティカルなアプリケーションの本番設定で使用されますが、その多くはユーザーと対話型でもあります。 このようなアプリケーションでは、高可用性が非常に重要です。 そして、さまざまな機能を通じて、 NCache これらのニーズを満たす素晴らしい仕事をします。
これらの機能の XNUMX つが Live Upgrade です。 NCache アプリケーションを中断することなく、新しいバージョンにアップグレードできます。 ブリッジ. NCache 提供 WAN レプリケーションのブリッジ トポロジ これは、クラスターの最新バージョンを維持する XNUMX つのキャッシュ クラスター間のブリッジとして機能します。 ただし、Live Upgrade 機能は、 NCache Enterprise エディション。
にアップグレードする理由 NCache 新しいバージョン
古いバージョンの NCache、最新バージョンにアップグレードして、最新の機能と拡張機能をすべて活用することを強くお勧めします。 によってもたらされたこれらの機能と改善のすべての詳細を確認するには NCache 5.3 SP1 では、 リリースノート of NCache 5.3SP1。
のライブ アップグレード NCache ごくわずかなデータ損失
ソフトウェアを手動でアップグレードするのにかかる時間は、ライブ アップグレードによって大幅に短縮されます。 を使用できます。 ライブアップグレード 現在動作中のキャッシュ (ソース キャッシュと呼ばれる) から最新のキャッシュ (ターゲット キャッシュ) に、キャッシュがまだ実行されている間にデータを複製します。
データ レプリケーションの非同期性により、ソース キャッシュに接続されているすべてのクライアントは、ターゲット キャッシュに完全なコピーがシームレスに作成された場合でも、ソース キャッシュのアクティビティを認識します。 一方、ソース キャッシュのセットアップは問題なく動作し続け、変更の影響を受けません。
上の図は、古いバージョンの 4 ノード クラスタを示しています。 NCache インストールされています。 まず、ノード 3 と 4 を停止し、最新のものをインストールします。 NCache これらのノードのバージョン。 次に、新しく 2 ノードのキャッシュを作成します。 NCache バージョンがインストールされたマシン (ノード 3 および 4)。 この時点で、それぞれ 2 つのノードで構成される合計 XNUMX つのキャッシュがあります。 それらをソース キャッシュと呼びましょう (古い NCache インストールされたバージョンのキャッシュ) とターゲット キャッシュ (新しくインストールされたキャッシュ) NCache インストールされたバージョンのキャッシュ)。 次に、これら XNUMX つのキャッシュ間にブリッジを作成して、ソース キャッシュからターゲット キャッシュにデータを転送する必要があります。 ソース キャッシュのノードを停止し、最新のものをインストールします。 NCache その上のバージョン。 次に、ノード 1 と 2 をターゲット キャッシュに追加して、4 ノード クラスターにします。
理想的には、4 つのサーバー ノード間でデータを分割できるように、2 ノード クラスターを使用することをお勧めします。 クラスタ ノードの分割は、この分割によってデータが失われることは決してないという事実に基づいています。 選択したクラスターのどの分割でも、分割されたクラスターに等しいデータを保持できる必要があります。 2 ノード クラスターの場合、それらを分割することはお勧めしません。 代わりに、新しいバージョンの一時的な XNUMX ノード クラスターを用意します。 NCache インストールされています。 既存の 2 つのノードが新しいクラスターに参加したら、これらの一時ノードを削除できます。
にアップグレードする方法 NCache ライブバージョン
たとえば、前のセクションの図で説明したように、4 ノードのクラスターがあります。 3 つのノード (4 と XNUMX) を取り出し、最新バージョンの NCache それら(ターゲットキャッシュ)。 他の 1 つのノード (2 と XNUMX) には古いバージョンがあります NCache インストール済み (ソースキャッシュ)。 両方のキャッシュは、名前と構成に関して同一です。 これはアクティブ-パッシブ構成です。
-
- の説明に従って、これら XNUMX つのクラスタ間に新しいブリッジを作成します。 ブリッジを作成する ページで見やすくするために変数を解析したりすることができます。
- の中に… のタグ ブリッジ.ncconf ブリッジ ノードで、次のようにターゲット キャッシュを手動で追加します。
1234567891011<configuration><bridge-config … ><cache cache-id="demoCache.WestCoast" status="active" servers-list="20.200.20.43" bulk-operation-size="500"enable-compression="False" connection-retry-interval="3" heart-beat-enabled="True" replicator-virtual-queue-size="2048MB" is-connected="True" is-master="False"/><cache cache-id="demoCache.EastCoast" status="active" servers-list="20.200.20.40" bulk-operation-size="500"enable-compression="False" connection-retry-interval="3" heart-beat-enabled="True" replicator-virtual-queue-size="2048MB" is-connected="True" is-master="False"/></bridge-config></configuration> - bridge.ncconf の変更後、次の PowerShell コマンドレットを使用してブリッジ サービスを再起動します。
1Restart-Service NBridgeSvc - ソース キャッシュとターゲット キャッシュを Start-BridgeStateTransfer PowerShell コマンドへの入力として指定して、状態の転送を開始します。
12Start-BridgeStateTransfer -Server 20.200.20.43 -Name demoBridge -SourceCache demoCache.WestCoast -TargetCachedemoCache.EastCoast - データは、古いクラスター (アクティブ) から新しいクラスター (パッシブ) に非同期的に複製されます。
- XNUMX つのキャッシュが完全に同期されたら、クライアントを停止し、新しいクラスターに再接続する必要があります。 これを行うには、ソース キャッシュ サーバーの IP アドレスをターゲット キャッシュ サーバーの IP アドレスに変更します。 client.ncconf 各クライアント ノードの接続を解除し、クライアントを再接続します。
- ブリッジを取り外します。
- クライアントが新しいクラスターに正常に接続されたら、古いクラスターを停止し、新しいバージョンをインストールします。 をアップグレードした後、これらのサーバーを新しいバージョンのキャッシュ クラスターに追加します。 NCache すべてのサーバー上のソフトウェア。
- ノード 1 と 2 を順番に新しいクラスターに参加させます。
まとめ
NCache ユーザーは、ごくわずかなデータ損失で最新バージョンにシームレスにアップグレードできます。 ユーザーは、XNUMX 台から移行する手間を省くことができます。 NCache ライブ アップグレードであろうと、次のバージョンであろうと、 オンライン NCache バージョンアップ。 詳細については NCacheは、以下を参照してください NCache ドキュメント.