我正在寻找正确的方式来为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,让某个“平衡器”将其传递给可用的服务。如果一个服务停机进行维护,则平衡器不会向该服务发出任何请求。
现在我知道了WCF路由,我想这就是答案。只需建立一个WCF路由器,并让它分发连接,但如果它倒下了会发生什么?这不会给您带来单点故障吗?我在找更工业的东西。
发布于 2012-03-21 20:37:31
.NET 4.0中的WCF具有路由功能,可以在您描述的故障转移场景中使用。这个WCF sample展示了如何使用内置的RoutingService class来实现此目的。
发布于 2012-03-21 20:17:09
你可以看看Microsoft Network Load Balancing (aka NLB)。微软在WCF的上下文中也提到了这一点。有一篇关于这个here的文章。
https://stackoverflow.com/questions/9804380
复制相似问题