単一のコンピューターで実行される一連のWCFサービスがあり、同じマシンまたはリモートマシン(同じネットワーク内のみ)にあるWPFアプリケーションに集合的にサービスを提供します。フェイルオーバーメカニズムが必要なので、サービスのいずれかがクラッシュまたはハングしたときはいつでも、サービスを再起動し、適切なメソッドを呼び出してサービスを初期化します。
WCFサービスのフェイルオーバーを実装するための業界標準が何であるかを認識していないため、このように実装しました。コンソールアプリでホストされているメインのWCFサービスを、特定のエンドポイントで公開されたメソッドを呼び出すことでメインのWCFサービスの状態を常にチェックするもう1つのセカンダリWCFサービスとともに開始します。メインのWCFサービスに障害が発生した場合、メインのWCFサービスの役割を果たし、別のセカンダリWCFサービスを起動します。
上記のアプローチは正常に機能していますが、サービスをペアで起動し、すべてのホストに10MBのメモリが必要なため、問題はメモリだけです。
この種のシナリオでフェイルオーバーを実装するための業界慣行を教えてもらえますか?