2016-08-12 20 views
12

我們在Azure上的服務結構集羣(實例計數-1)中的所有節點上公開無狀態Owin WebAPI。 WebAPI面向公衆消費,即使面對內部服務和WebAPI本身的升級,也應該高度可用。我們在羣集前有Azure負載均衡器(LB),每隔5秒使用TCP探測器在端口80上探測羣集,以確定哪些節點可以接收http流量。Azure上託管的高可用性服務結構WebApi

我們在升級WebAPI時遇到了問題,即LB指向正在升級但尚未被探測器註冊爲脫機的節點。 Service Fabric不會協調升級過程與LB,因此在升級時不會有機會(並且Azure LB上沒有API)使節點停止旋轉。

我們想知道人們如何在Azure上的Service Fabric上實現高可用性的http服務。我希望有人會評論他們的一般方法。

回答

0

如何在Azure LB中使用HTTP探測並在Web API中添加諸如http://node:80/_health的健康檢查端點?通過這種方式,您可以控制節點是否應處理流量。

+1

我們一直在想這個。當升級時,我們不得不推遲關機過程,其中包括捕獲發送到進程的Ctrl-C並等待足夠的LB探測器擊中健康端點,以確保完全關閉該過程。我們還必須爲升級提供足夠的超時時間,以避免進程將應用程序變爲警告/錯誤,以便響應關閉緩慢。 –