我使用EntityManager
Web Api application
规则在三台服务器上分发了我的Load Balancer
。对于指定的RestApi端点http://MyServer/api/LongRunningProcees,每个服务器都可以继续Round Robin
如果第二个请求在第一个请求未完成时发布到同一Rest API端点,则服务器返回503服务不可用。
我是新手来加载平衡,我找不到任何解决方案如何将请求重定向到另一台服务器,直到它被接受为止。这个Load Balancer是负责吗?
答案 0 :(得分:0)
如果您想使用 Round Robin 算法,那么您必须接受某些服务器将忙碌而其他服务器将等待请求。该算法只是以这种方式工作。
但是,还有其他算法。例如最短响应时间,它根据服务器的响应时间选择服务器。详细信息取决于使用的Load Balancer。
此外,在我看来,如果服务器忙,服务器不应该返回503错误。而是应该将请求放入某种队列并等待服务器可用。如果在相似的时间内处理请求并使用合适的平衡算法,那么所有服务器的队列中应该具有相似数量的请求。