内部体验腾讯负载均衡的新功能
版權聲明:本文由吳逸翔?原創文章,轉載請注明出處:?
文章原文鏈接:https://www.qcloud.com/community/article/538713001487764019
來源:騰云閣?https://www.qcloud.com/community
?
有個朋友的web服務,因為在線用戶數目平常波動很大,按照最大在線數部署服務器顯然太浪費,所以選擇了騰訊云的彈性伸縮(AutoScaling)服務,在每天用戶集中上線的時間點上快速擴容服務器加入到集群中分散壓力。因此在集群遭遇到突發的訪問壓力的時候,快速的自動擴容能力就顯得非常重要了。前陣子還專門為此請教了騰訊云專家,解析了快速生成主機的不傳之秘?。
但是快速生成了主機并加入集群,并不能確保主機快速的分擔壓力,因為騰訊云的負載均衡目前只支持IP hash 和按權重輪詢兩種方式,這兩種分配算法在新服務器加入后都需要經過一段短時間的預熱才能逐步分配到流量。因此擴容后的曲線常常會是這樣子的(剛剛進行的擴容實測,為了降低對業務影響測試了5分鐘就停掉了):
注意紅色曲線和橫軸重合的部分:
(第一分鐘0Mbps)
(第二分鐘0Mbps)
(第三分鐘0Mbps)
也就是說,雖然生成一臺服務器我們可以優化到數十秒,但是新服務器加入集群后的前面幾分鐘幾乎沒有請求分發到新服務器上,隨后才步入正軌。這樣顯然延長了壓力緩解過程,讓更多用戶忍受了幾分鐘的惡劣體驗。
那有沒有辦法縮短這個過程呢?騰訊云近期將推出的新的負載均衡輪詢算法就可以解決這個問題。新算法被稱為“最小連接數”算法,也就是LB會隨時判斷哪臺主機上的HTTP連接數最少,然后盡量把新的請求分發給它。經過一番軟磨硬泡,終于從負載均衡團隊磨到了新LB算法的內測體驗資格,立刻做了一個擴容實驗。我們來看看效果:
可以看到,最開始和橫軸重合的一段消失了,新服務器在接入的第一時間立刻分攤到了訪問量并輸出流量,集群中過載的服務器壓力也就立刻得到了緩解。
不只是擴容過程會從新算法中收益,實際上在以往的算法中,集群中的服務器都難以即時分擔彼此的壓力,當某一臺或者幾臺服務器壓力過大的時候,LB只會繼續按照權重隨機的分配新的請求給它,而不是降低它的權重,讓它緩一緩。而在新算法中,如果一臺服務器負擔壓力過重導致請求無法及時響應完成,LB就會觀察到它的連接數增加,并把更多的請求分配給連接數更少的服務器,從而達到更優的負載均衡效果。
當然,要充分獲得這些優勢都要取決于接入服務器已經實現了『無狀態化』這個前提,否則負載均衡也無法隨意的把一臺服務器的壓力轉移到另一臺上面。
分享至
??
轉載于:https://www.cnblogs.com/purpleraintear/p/6486189.html
總結
以上是生活随笔為你收集整理的内部体验腾讯负载均衡的新功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx 操作笔记
- 下一篇: 【bzoj3224】 Tyvj1728—