IT技術互動交流平臺

實現服務器HTTP重定向達到負載均衡的詳細步驟

發布日期:2018-12-10 09:30:01
  當一臺服務器的性能達到極限時,我們可以使用服務器集群來提高網站的整體性能。那么在這個過程中,調度者如何合理分配任務,保證所有后端服務器都將性能充分發揮,從而保持服務器集群的整體性能最優,這就是實現服務器HTTP重定向達到負載均衡。

HTTP重定向負載均衡

  1、當用戶向服務器發起請求時,請求首先被集群調度者截獲;調度者根據某種分配策略,選擇一臺服務器,并將選中的服務器的IP地址封裝在HTTP響應消息頭部的Location字段中,并將響應消息的狀態碼設為302,最后將這個響應消息返回給瀏覽器

  2、當瀏覽器收到響應消息后,解析Location字段,并向該URL發起請求,然后指定的服務器處理該用戶的請求,最后將結果返回給用戶。

  3、在使用HTTP重定向來實現服務器集群負載均衡的過程中,需要一臺服務器作為請求調度者。用戶的一項操作需要發起兩次HTTP請求,一次向調度服務器發送請求,獲取后端服務器的IP,第二次向后端服務器發送請求,獲取處理結果。

  4、調度服務器收到用戶的請求后,究竟選擇哪臺后端服務器處理請求,這由調度服務器所使用的調度策略決定。當調度服務器收到用戶請求后,可以隨機決定使用哪臺后端服務器,然后將該服務器的IP封裝在HTTP響應消息的Location屬性中,返回給瀏覽器即可。調度服務器需要維護一個值,用于記錄上次分配的后端服務器的IP。那么當新的請求到來時,調度者將請求依次分配給下一臺服務器。

  5、由于輪詢策略需要調度者維護一個值用于記錄上次分配的服務器IP,因此需要額外的開銷;此外,由于這個值屬于互斥資源,那么當多個請求同時到來時,為了避免線程的安全問題,因此需要鎖定互斥資源,從而降低了性能。而隨機分配策略不需要維護額外的值,也就不存在線程安全問題,因此性能比輪詢要高。

  6、采用HTTP重定向來實現服務器集群的負載均衡實現起來較為容易,邏輯比較簡單,但缺點也較為明顯。在HTTP重定向方法中,調度服務器只在客戶端第一次向網站發起請求的時候起作用。當調度服務器向瀏覽器返回響應信息后,客戶端此后的操作都基于新的URL進行的(也就是后端服務器),此后瀏覽器就不會與調度服務器產生關系,進而會產生如下幾個問題:

  由于不同用戶的訪問時間、訪問頁面深度有所不同,從而每個用戶對各自的后端服務器所造成的壓力也不同。而調度服務器在調度時,無法知道當前用戶將會對服務器造成多大的壓力,因此這種方式無法實現真正意義上的負載均衡,只不過是把請求次數平均分配給每臺服務器罷了。若分配給該用戶的后端服務器出現故障,并且如果頁面被瀏覽器緩存,那么當用戶再次訪問網站時,請求都會發給出現故障的服務器,從而導致訪問失敗。

延伸閱讀:

  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果