負載平衡技術對於中大型網站的效能提升有著很大的優勢,最近在學習《大型網站技術的架構》,其中對於負載平衡技術有一些介紹,本文主要和大家分享幾種負載均衡技術,希望能幫助大家。
# 原理:根據使用者的http請求計算出一個真實的web伺服器位址,並將該web伺服器位址寫入http重定向回應中傳回給瀏覽器,由瀏覽器重新進行存取。
如圖:
##
##
優點:比較簡單
#缺點:瀏覽器需要零次請求伺服器才能完成一次訪問,效能較差。
http重定向伺服器本身的處理能力可能會變成瓶頸。
使用http302回應重新導向,有可能讓搜尋引擎判斷為SEO作弊,降低搜尋排名。
【協定層】dns網域解析負載平衡
原理:在DNS伺服器上配置多個網域對應IP的記錄。例如一個網域www.baidu.com對應一組web伺服器IP位址,網域名稱解析時經過DNS伺服器的演算法將一個網域請求分配到適當的真實伺服器。
如圖:
##
# #
優點:將負載平衡的工作交給了DNS,省卻了網站管理維護負載平衡伺服器的麻煩,同事許多DNS也支援基於地理位置的網域解析,將網域名稱解析成距離使用者地理最近的一個伺服器位址,加快存取速度嗎,改善效能。
缺點:目前的DNS解析是多層次解析,每一級DNS都可能化快取記錄A,當摸一伺服器下線後,此伺服器對應的DNS記錄A可能仍然存在,導致分配到該伺服器的使用者存取失敗。
DNS負載平衡的控制權在網域服務商手裡,網站可能無法做出太多的改善與管理。
可能會造成額外的網路問題。為了使本DNS伺服器和其他DNS伺服器及時交互,保證DNS資料及時更新,使位址能隨機分配,一般都要將DNS的刷新時間設定的較小,但太小將會使DNS流量大增造成額外的網絡問題。
【協定層】反向代理負載平衡
### 原理:反向代理處於web伺服器這邊,反向代理伺服器提供負載平衡的功能,同時管理一組web伺服器,它根據負載平衡演算法將請求的瀏覽器存取轉送到不同的web伺服器處理,處理結果經過反向伺服器傳回瀏覽器。 ###########################如圖:######
例如:瀏覽器存取請求的位址是反向代理伺服器的位址114.100.80.10,反向代理伺服器收到請求,經過負載均衡演算法後得到一個真實實體位址10.0.03,並將請求結果發給真實無服務,真實伺服器處理完後透過反向代理伺服器回傳給請求使用者。
優點:部署簡單,處於http協定層級。
缺點:使用了反向代理伺服器後,web 伺服器位址不能直接暴露在外,因此web伺服器不需要使用外部IP位址,而反向代理服務作為溝通橋樑就需要設定雙網卡、外部內部兩套IP位址。
原則:在網路層透過修改目標位址進行負載平衡。
如圖:
#
#
# 用戶存取請求到達負載平衡伺服器,負載平衡伺服器在作業系統核心進程取得網路封包,根據演算法得到一台真實伺服器位址,然後將使用者要求的目標位址修改成該真實伺服器位址,資料處理完後傳回給負載平衡伺服器,負載平衡伺服器收到回應後將自身的位址修改成原使用者存取位址後再講數據回回去。類似於反向伺服器負載平衡。
優點:回應要求時速度較反向伺服器負載平衡速度要快。
缺點:當請求資料較大(大型影片或檔案)時,速度較慢。
【連結層】資料鏈結層負載平衡
原理:在資料鏈結層修改Mac位址進行負載平衡。
如圖:
##
## 負載平衡伺服器的IP與它所管理的web 服務群的虛擬IP一致;
負載平衡資料分發過程中不修改存取位址的IP位址,而是修改Mac位址;
透過這兩點達到不修改封包的原始位址和目標位址就可以進行正常的存取。
############ 優點:不需要負載平衡伺服器進行位址的轉換。 ############ 資料回應時不需經過負載平衡伺服器。 ############ 缺點:負載平衡伺服器的網路卡頻寬需求較高。 ############ ############ 目前連路程負載平衡是特別常見的手段,典型的產品有LVS(Linux Virtual Server)。 ######
相關推薦:
#以上是幾種負載平衡技術分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!