1

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 ルーターを設置して接続を渡すだけですが、それが失敗した場合はどうなりますか? これにより、単一障害点が発生しませんか? もっとインダストリアルなものを探しています。

4

2 に答える 2

2

.NET 4.0 の WCF には、説明したようなフェールオーバー シナリオで使用できるルーティング機能があります。このWCF サンプルは、組み込みのRoutingService クラスをこの目的で使用する方法を示しています。

于 2012-03-21T12:37:31.180 に答える
0

Microsoft Network Load Balancing (aka NLB)をご覧ください。Microsoft は、WCF のコンテキストでもこれについて言及しています。これに関する記事がここにあります。

于 2012-03-21T12:17:08.697 に答える