web負載均衡小記

對於Web 站點的水平擴展,負載均衡是一種常見的手段。負載均衡的實現方法有: 


1 HTTP重定向 


通過RR策略,或隨機方法通過HTTP重定向通知客戶端訪問其他多臺實際服務器。 
ps:性能前者不及後者 


2 DNS負載均衡(DNS-RR) 


多條A記錄,DNS服務器會自動輪詢。當某臺實際服務器出現故障時,可以通過調用DNS提供的服務,刪除指向該服務器的A記錄。當然DNS由於有TTL,所以得過些時候才生效。 


3 反向代理負載均衡 


通過反向代理服務器,將HTTP請求,分發給幾個後端服務器。 


粘滯對話:同一臺客戶端可能會使用服務器Session,所以在反向代理時,要使用一定的策略,使其多次訪問都是同一臺後端服務器。常見策略有:hash算法通過IP計算獲得後端服務器編號;或使cookie中包含後端服務器編號等。或採用分佈式Session,或分佈式緩存。 


但反向代理服務器進行轉發操作本身是需要一定開銷的,比如創建線程、與後端服務器建立TCP 連接、接收後端服務器返回的處理結果、分析HTTP 頭信息、用戶空間和內核空間的頻繁切換等,通常這部分時間並不長,但是當後端服務器處理請求的時間非常短時,轉發的開銷就顯得尤爲突出,以致成爲瓶頸。 


 



4 IP 負載均衡(LVS-NAT) 


位於WLAN的調度器,通過DNAT數據傳輸層的IP地址轉換(網絡層/第三層),將客戶端的的請求,轉發到位於LAN上的實際服務器上。後者響應後數據發給調度器,由調度器發給WLAN。 


 


吞吐率較高。但由於來回數據都進過調度器,導致其網關瓶頸。 


 


5 直接路由(LVS-DR) 


通過使用IP別名的方式,將多個具有公網IP的實際服務器與調度器一起使用相同的IP別名a。DNS解析地址設爲a,設置爲只有調度器響應該ARP。調度器收到數據包後,修改MAC地址,轉發給實際服務器。後者將響應結果直接發給WLAN。 


 


吞吐率雖與“IP 負載均衡法”相當。但由於調度器不負責轉發響應的數據包,網關瓶頸問題解決。 

 

6 IP 隧道(LVS-TUN) 


與LVS-DR 的原理非常類似,不同的是,實際服務器可以和調度器不在同一個WAN 網段,調度器通過IP 隧道技術來轉發請求到實際服務器,所以實際服務器也必須擁有合法的IP 地址。 


總的來說,LVS-DR 和LVS-TUN 都適合響應和請求不對稱的Web 服務器,可以非常有效地提高集羣的擴展能力,但如何選擇它們,更多的不是因爲性能和擴展性,而是取決於你的網絡部署需要,比如剛纔提到的CDN 服務需要將實際服務器部署在不同的IDC,從而必須使用IP 隧道技術。 


備註: 
LVS: Linux Virtual Server,Linux 虛擬服務器 

Heartbeat 對主調度器進行心跳檢測,一旦發現主調度器停止心跳,便立即啓動故障轉移,接管主調度器,這個接管過程包括 
IP 別名變更、相關服務的啓動等。隨後,一旦主調度器恢復後,備用調度器便自動將相關資源轉交回主調度器。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章