WCF サービスの冗長性を確保する正しい方法を探しています。コードで「インフラストラクチャ」の問題を解決しようとしていると思います。私はロードバランサーの速度に追いついていませんが、まさにこれに対するルーターのようなものがあるべきだと思われます。
// Cycle through the list of service.
foreach (var uri in InfrastructureInformation.ServiceUris)
{
try
{
using (var client = WcfClientFactory.Create<ServiceClient>(uri))
{
// Do stuff here.
}
}
catch
{
// todo: Do not catch "exception" here. We have to find a better way of doing this.
// Try the next URI.
}
}
何らかの「バランサー」が利用可能なサービスに引き渡すことができる URI を 1 つ持つ方法があるはずです。1 つのサービスがメンテナンスのためにダウンした場合、バランサーはそのサービスにリクエストを送信しません。
今、私は WCF ルーティングについて知っており、それが答えだと思いました。WCF ルーターを設置して接続を渡すだけですが、それが失敗した場合はどうなりますか? これにより、単一障害点が発生しませんか? もっとインダストリアルなものを探しています。