簡體   English   中英

使用Azure負載平衡器以零停機時間重新啟動/更新服務器

[英]Using Azure load balancer to reboot/update server with zero downtime

我有一個非常簡單的設置:一個用於http(s)流量的Azure負載均衡器,兩個運行Windows的應用程序服務器和一個包含會話數據的數據庫。

目標是能夠重新引導或更新服務器上的軟件, 而不會丟棄單個請求 問題在於,運行狀況探針每5秒鍾執行一次測試,並且需要連續兩次失敗。 這意味着當我終止應用程序服務器時,在這10秒鍾內,許多請求將超時。 如何避免這種情況?

我已經嘗試過在其他端口上運行狀況探針,然后使用Windows防火牆拒絕到該端口的所有流量。 負載平衡器會認為該應用程序已在該節點上關閉,因此不再向該特定節點發送新流量。 但是... Azure LB會執行基於哈希的負載平衡。 因此,已經到達現在被殺死的節點的流量將繼續在那里持續幾秒鍾!

首先,您能否給我們提供更多詳細信息:數據庫負載平衡了嗎? 您是在此數據庫上執行讀寫操作還是僅讀取?

有關您的信息,您可以更改Azure負載均衡器分發模式,請參考本文以獲取詳細信息: https : //docs.microsoft.com/zh-cn/azure/load-balancer/load-balancer-distribution-模式

我建議您禁用要在負載均衡器級別更新的服務器。 在開始更新之前,請等待幾分鍾(取決於您的應用程序)。 這應該“清除”您的端點。 更新完成后,再次更新負載均衡器,然后將服務器放回其中。 雲概念是作為代碼的基礎架構:可以輕松編寫腳本並將其包含在部署/更新過程中。

另一個解決方案是使用流量管理器。 它可以為您提供其他選項來管理您的端點(對於2個VM /端點,它可能有點大)。

最后一種解決方案是遷移到PaaS解決方案,其中所有此類功能均已可用(部署插槽)。

希望這會有所幫助。

最好的祝福

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM