サーバーフェールオーバーのオープンスタンダードはありますか?
-
05-07-2019 - |
質問
クライアントサーバーアプリケーションを構築しており、サーバーがダウンしたときに別の利用可能なサーバーに接続しようとするように、クライアントにフェールオーバーを追加することを検討しています。サーバーのフェールオーバーをカバーする標準や仕様はありますか?独自のメカニズムを実装するよりも、既存の標準を採用したいです。
解決
存在しない、または存在する必要がある。それは非常に簡単で、すべてがサーバーに接続する方法に依存しますが、基本的には、emを呼び出したいものは何でもping / keepalives / heartbeatsを送信し続ける必要があり、失敗した場合(またはnが連続して失敗した場合、ご希望の設定でスイッチを変更します。
通常、上記はクライアントマシン上で別のサービスとして実行されます。他の方法として、作成したすべてのサーバー呼び出しの実行を処理するメソッド実行ハンドラーを作成し、通信障害時に「キャッチ」ブロックで設定でスイッチをフリックします
他のヒント
質問は非常に一般的です。一般的な答えは次のとおりです。 Google for Fault Tolerant Computing
これは通常、ロードバランサーまたはサーバーレベルで処理されます。これは、クライアントのコードで通常行うことではありません。
通常、サーバーはそれぞれが独自のIP +すべてのサーバー間で共有されるIPを持つマルチホームになります。さらに、それらはtcpを介して相互に通信して、ハートビートがアクティブ/パッシブクラスター内のアクティブノードであるかどうかを確認します。
使用しているサーバーの種類はわかりませんが、ほとんどのWindowsサーバーはこれをネイティブに実行できます。
これをサポートするようにサーバーを適切に構成する方法を確認するには、serverfaultで質問することを検討してください。