2015-11-06 64 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錯誤。相反,請求應該放入某種隊列並等待服務器可用。如果請求在相似時間內處理並且使用了合適的平衡算法,那麼所有服務器的隊列中都應該有相似數量的請求。