NLB + ARRアーキテクチャ に従って、(異なるサイト用に)いくつかのWebファームを構成しようとしています。私が6つのVMを持っているとしましょう:
すべてが正常に機能します。両方の層で高可用性があることをテストしました。
ここで、理由により、サイト2はアクティブ/パッシブモードで動作する必要があるため、1 VMのみがトラフィックを受信し、もう1つはフェイルオーバー用です。ある意味で、 NLBのシングルホストモードですが、ARR用です。
これはどのように達成できますか?
私は、望ましい動作を実現するために、いくつかの間接的なアプローチを試しました。
どのソリューションも完璧ではありません。
NLBの場合と同じように、ARRをシングルホストモードにする方法を本当に知りたいです。そして、ノード間のルーティングを同期させます。
誰もがそれを行う方法を知っていますか?または代替アプローチを知っていますか?
完全ではありませんが、うまくいくように見える方法を1つ見つけました。説明されています ここ 。アイデアは、「サーバー変数ハッシュ」負荷分散アルゴリズムと「HTTP_Host」を変数として使用することです。このようにして、ARRのすべてのインスタンスは、特定のホストを同じコンテンツサーバーにマップします。マップされたサーバーが機能しない場合、それらが別の利用可能なサーバーにフォールバックすることをテストしました。
ただし、このソリューションの問題は、ホストがマップされるコンテンツサーバーを制御できないことです。これは、ハッシュ関数によって決定されます。それでも、ある意味では正しいです。ノードをアクティブにすることを恐れている場合、信頼できるフェイルオーバーをどのように期待できますか?すべてのコンテンツサーバーで同時に確認する必要があります。
もう1つの問題は、サイトごとに複数のホスト名を使用できないことです。これは、ホスト名が異なるサーバーにマップされる可能性があるためです。