私はクライアント/サーバー アプリケーションを構築しており、サーバーがダウンしたときに別の利用可能なサーバーに接続しようとするように、クライアントにフェールオーバーを追加することを検討しています。サーバーのフェイルオーバーに関する標準または仕様はありますか? 独自のメカニズムを実装するよりも、既存の標準を採用したいと考えています。
3 に答える
私はそこにいません、または存在する必要があります。それは非常に単純で、すべてはサーバーへの接続方法に依存しますが、基本的には、ping/キープアライブ/ハートビートを送信し続ける必要があります。したい) 設定でスイッチを変更します。
通常、上記はクライアント マシン上で別のサービスとして実行されます。別の方法として、作成したすべてのサーバー呼び出しの実行を処理するメソッド実行ハンドラーを作成し、通信の失敗時に「catch」ブロックで構成のスイッチをフリックすることもできます。
あなたの質問は非常に一般的です。ここにいくつかの一般的な答えがあります: フォールトトレラントコンピューティングのためのグーグル
これは通常、ロード バランサーまたはサーバー レベルで処理されます。これは、クライアントのコードで通常行うことではありません。
通常、サーバーはそれぞれ独自の IP とすべてのサーバー間で共有される IP を持つマルチホームです。さらに、それらは tcp を介して相互に通信し、ハートビートがアクティブ/パッシブ クラスター内のアクティブ ノードを認識します。
お使いのサーバーの種類はわかりませんが、ほとんどの Windows サーバーはこれをネイティブに実行できます。
これをサポートするようにサーバーを適切に構成する方法を確認するには、serverfault で質問することを検討してください。