Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/web-services/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services Web服务提供者路由_Web Services_Location_Wcf Routing - Fatal编程技术网

Web services Web服务提供者路由

Web services Web服务提供者路由,web-services,location,wcf-routing,Web Services,Location,Wcf Routing,我希望实现一个服务(web/windows、.net),该服务维护可用服务的列表,并可以根据请求的性质或类型提供端点。然后,请求者可以将实际的工作请求传递给提供的端点。实际工作请求可能包含非常大的数据块(从10MB到甚至可能超过GB) WCF路由服务听起来非常适合,但事实证明并非如此,因为它需要实际的工作请求才能通过,这在路由服务上造成了瓶颈(关键是让系统能够扩展)。如果我有更小的消息,WCF路由将是一个不需要动脑筋的问题 有符合条件的吗?最好是基于.NET/windows的?您的意思是因为请求

我希望实现一个服务(web/windows、.net),该服务维护可用服务的列表,并可以根据请求的性质或类型提供端点。然后,请求者可以将实际的工作请求传递给提供的端点。实际工作请求可能包含非常大的数据块(从10MB到甚至可能超过GB)

WCF路由服务听起来非常适合,但事实证明并非如此,因为它需要实际的工作请求才能通过,这在路由服务上造成了瓶颈(关键是让系统能够扩展)。如果我有更小的消息,WCF路由将是一个不需要动脑筋的问题


有符合条件的吗?最好是基于.NET/windows的?

您的意思是因为请求阻止工作吗

Do可以使用单向
操作契约
创建异步服务,以避免阻塞请求池

[ServiceContract]
interface IMyContract
{
   [OperationContract(IsOneWay = true)]
   void DoWork()
}
更新

我想现在我更了解您的问题了,您正在寻找将负载分配到不同的服务器,以避免由于高流量负载而导致的请求瓶颈(最好基于内容进行分配)

我要说的是,
MVC路由
确实是这方面的理想选择。您可以利用的功能之一是防坠落功能。实际上,您可以定义多个备份端点,如果其中一个备份端点出现故障,它将自动转移到下一个备份端点。这里有一个很好的介绍如何工作

这里还有一篇很好的文章讨论了使用相同原则使用WCF进行负载平衡。它为一个实现提供了两个解决方案,允许您对服务请求进行负载平衡(尽管在开始时,他说,出于实现原因,他对它是否支持负载平衡的一般回答是否定的)


如果您担心所有请求都通过一台服务器进行路由,并且仍然会成为瓶颈,那么请考虑web负载平衡器。情况也是这样。坐在中间转发包不需要太多的工作,而且处理大量的流量没有问题。我不认为这是一个问题。

不是因为它们显式地阻止工作,而是因为执行路由的服务器必须处理大型消息的全部内容。在高峰期,数据量和请求数量都是荒谬的。