2015-11-06 67 views
0

我有我的Web Api application分布在三台服务器上使用Load BalancerRound Robin规则。每个服务器可以为指定的RestApi端点执行only one requesthttp://MyServer/api/LongRunningProcees 如果第二个请求发布到相同的Rest API端点(当第一个请求未完成时),则服务器返回503服务不可用。Web Api建议重定向呼叫,负载均衡

我是新来的负载平衡,我没有找到任何解决方案如何将请求重定向到另一台服务器,直到它将被接受。这是负载平衡器的责任?

+0

难道我理解正确的是最大只有3个请求,可以同时处理?如果有新的请求并且所有服务器都很忙,你想怎么做? –

+0

这只是一个例子,我们正在使用扩展选项来在需要时添加更多云服务器。实际的问题是使用循环法负载平衡器可以击中仍在继续RestApi终点的同一服务器,但其他服务器可用于相同的RestApi终点。 – Tomas

+0

你使用什么Load Balancer? –

回答

0

如果您想使用循环法算法,那么您必须接受某些服务器将处于忙碌状态,而其他服务器将等待请求。这种算法只是以这种方式工作。

但是,也有其他算法。例如最少响应时间,它根据服务器的响应时间选择服务器。细节取决于使用的负载平衡器。

此外,在我看来,如果服务器忙,它不应该返回503错误。相反,请求应该放入某种队列并等待服务器可用。如果请求在相似时间内处理并且使用了合适的平衡算法,那么所有服务器的队列中都应该有相似数量的请求。