Azure

如果出現 WPA 問題,擁有 2 個 Web 應用程序實例能否確保可用性?

  • July 12, 2018

我有一個 azure web 應用程序(S2 應用程序服務計劃),它設置為自動縮放,但最小實例數為 1。由於它大部分時間處於空閒狀態,實際實例數幾乎始終為 1。

上週發生了“事情”,該網站不再可用。每個請求都以 http 狀態 500 回答。這持續了大約 10 個小時,突然之間,該站點再次可用。在錯誤情況發生前幾天,我沒有做任何更改,也沒有做任何事情使網站再次出現。

我為此開始了支持請求,支持工程師一直在研究這個問題。據他介紹,問題的原因是:

根本原因指向Windows Process Activation Service,它無法執行與您的應用程序相關的程序,並且平台無法在指定的時間範圍內恢復它

鑑於我無法配置 WPA,我認為這是平台的問題。支持工程師確認。

認為這意味著 azure 應該處理這樣的狀態,並做任何必要的事情來重新啟動應用程序。由於該服務需要 10 個小時才能重新上線,我認為這是偶然發生的,而 azure 在這裡沒有做任何事情。我應該發布有關此事件的錯誤報告嗎?(支持工程師在這裡並沒有真正的幫助……)

此外,支持工程師堅持認為擁有多個實例可以解決可用性問題,因為

實例,因此我可以確認此方案中的冗餘故障轉移選項將讓您將站點擴展到至少兩個實例。這樣,如果其中一個實例不可用,則第二個實例將接管。

我認為這根本不正確,因為該網路應用程序被 azure 報告為“健康”並且確實響應了請求,儘管狀態為 500。

在這種情況下,天藍色真的會僅將流量發送到未返回狀態 500 的實例嗎?而且,鑑於我首先不知道是什麼導致了 WPA 問題 - 在第二個實例中不可能出現完全相同的問題嗎?

當您擴展到 Web 應用程序的多個實例時,它們將位於負載均衡器後面(您不會看到這一點,但這就是幕後發生的事情)。負載均衡器探測應該檢測到來自您的第一個實例的 500 錯誤,並且不會將任何流量定向到它。

您的 Web 應用程序實例將在不同的虛擬機上執行,因此如果第一個出現 WPA 問題,那麼它不應該影響第二個。也就是說,第二台主機上可能會出現另一個 WPA 問題,特別是如果您的應用程序中的某些內容觸發了此問題。

引用自:https://serverfault.com/questions/920469