1

次のシナリオでは、フェイルオーバーメカニズムをデバイス化する必要があります。4つのインスタンスを持つWCFWindowsサービスがあります(ロケーション "A"にはプライマリ(PA)とセカンダリ(SA)があり、ロケーション "B"にはプライマリ(PB)とセカンダリ(SB)の2つのインスタンスがあります)。いつでも、各場所の1つのインスタンスが稼働中であり(つまりアクティブ)、もう1つのインスタンスは非アクティブである必要があります。一度に1つの場所を考慮すると、セカンダリ(非アクティブ)は、ヘルス情報のためにプライマリ(アクティブ)にPINGできる必要があります。また、「正常」であることが判明していない場合は、セカンダリ(非アクティブ)が自動的にアクティブ化されます。

プライマリとセカンダリが2つの異なるマシン/同じマシン自体にあると見なされる場合、ソリューションはどのように異なりますか?

同じ振る舞いを実現する方法について、専門家の意見をいただければ幸いです。

よろしく!

4

1 に答える 1

2

フェイルオーバー戦略を再考する必要があると思います。

アクティブ-パッシブフェールオーバー/負荷分散構成で実行するようにサービスを構成することには、いくつかの問題があります。

  1. 複雑な管理が必要です-サービスは相互に認識している必要があり、複雑さと結合を生み出します。
  2. メッセージ/リクエストをドロップできます。たとえば、サービスAがメッセージの処理に失敗した場合、サービスBがメッセージが処理されなかったことを知る方法がない限り、そのメッセージはサービスBによって処理されません。

私が実装したアクティブ-アクティブサービス構成には、フィルターインターンまたは完全冗長の2つのモードがあります。

フィルタインターン構成では、メッセージ/リクエストはネットワークロードバランサを介して利用可能なサービスの1つに送られます。

完全に冗長な構成(私が好む構成)では、メッセージ/要求は利用可能なすべてのサービスに同時にブロードキャストされます。これは、呼び出しの複数の同一のコピーを各サービスに送信し、それらが同時に処理されることを意味します。

これらのフェイルオーバー構成はどちらもメリットがありますが、ロードバランサーが必要ないため、完全冗長構成の方が適していると思います。

于 2012-12-22T12:43:25.937 に答える