我正在尝试限制对WCF服务的最大并发调用。我对它们的限制如下:
<behaviors>
<serviceBehaviors>
<behavior name="Throttled">
<serviceThrottling
maxConcurrentCalls="4"
/>
</behavior>
</serviceBehaviors>
</behaviors>
我的问题如下:
如果请求超出“ maxConcurrentCalls”中设置的请求,会发生什么?他们会排队还是被拒绝?
在达到maxconcurrent调用时,用户会收到任何错误/异常吗?
我希望其他请求排队,并且用户不应出现任何错误或异常。为此应该做什么?
答案 0 :(得分:1)
限制的目的是避免过多分配和使用资源。启用“油门”设置后,如果超出了电流限制设置,则WCF会自动将呼叫者置于等待队列中,然后依次处理呼叫。如果客户端在等待期间超时。您将获得TimeoutException。简而言之,节流阀旨在防止系统崩溃,但仅当高负载占据一小部分负载时才如此。如果您长时间处于高负载状态,并且Throttle最终导致所有调用者超时,建议您从一开始就考虑设计