你的意思是因为请求阻止工作?
可以使用OneWay
OperationContract
来创建异步服务,以便不阻塞请求池。
[ServiceContract]
interface IMyContract
{
[OperationContract(IsOneWay = true)]
void DoWork()
}
更新
我想明白你的问题现在好了,你正在寻找负载分配到不同的服务器,以避免请求瓶颈,由于流量负载(基于内容的优选地分布)。
我会说MVC Routing
确实是这个理想选择。您可以利用的功能之一是翻转功能。您实际上可以定义多个备份端点,并且在出现故障的情况下,它会自动转到下一个端点。有一个很好的介绍如何工作here。
这里还有一篇很好的文章,讲述了使用相同原理的WCF负载均衡。它为round robin filter实现提供了2个解决方案,允许您对服务请求进行负载均衡(即使在开始时他说他支持负载平衡的一般答案是因实现原因而不是)。
如果您担心所有通过一台服务器的请求路由并仍然成为瓶颈,那么请考虑web负载均衡器。这是相同的情况。坐在中间转发数据包不需要太多的工作,并且他们没有问题处理大量的流量。我认为这不是IMO的问题。
不是因为他们明确阻止工作,而是因为执行路由的服务器将不得不处理整个大消息内容。在高峰时段,这是一个可笑的数据量和请求数量。 – StingyJack
有你 - 更新了答案。 – TheCodeKing