負載均衡的幾種實現技術

2021-07-11 17:20:34 字數 1186 閱讀 4448

當web伺服器的垂直擴充套件變得話費很高或困難的時候,我們需要考慮伺服器的水平擴充套件,即負載均衡技術。負載均衡有很多技術,這裡我們來一一介紹。

1.http重定向

我們可以在**層面實現,通過設定訪問特定頁面如index.php,在php**中設定header的location值,返回重定向指令。這實際上是web應用程式自己來實現。

2.dns負載均衡

dns負責網域名稱和ip位址之間的對映。dns伺服器可以作為排程器(dns的常見策略是rr round robin方式)。

儘管基於http重定向的負載均衡系統受到主站點效能的制約,但是不可否認這種方案中的排程策略具有很好的靈活性,你完全可以通過web應用程式實現任何你能想到的排程策略。

相比之下,為dns伺服器開發自定義的排程策略就不那麼容易了,但是,類似bind這樣的dns伺服器軟體提供了豐富的排程策略供你選擇。dns伺服器充當了乙個粗放型的請求排程器。

3.反向**負載均衡

它工作在http層面,也就是tcp七層結構中的應用層,所以基於反向**的負載均衡也稱為七層負載均衡。

這種方案負載均衡伺服器是有瓶頸效應的,這種效應隨著後端伺服器內容處理時間的減少而逐漸明顯,這不難解釋,反向**伺服器進行**操作本身是需要一定開銷的,比如建立執行緒,與後端伺服器建立tcp連線,接受後端伺服器返回的處理結果,分析http頭資訊,使用者空間和核心空間的頻繁切換等,通常這部分時間並不長,但是當後端伺服器處理請求的時間非常短時,**的開銷就顯得尤為突出。

4.ip層負載均衡lvs-nat

我們需要在http層面以下實現負載均衡,這些負載均衡排程器的工作必須由linux核心來完成,因為我們希望網路資料報在從核心緩衝區進入程序使用者位址空間之前,盡早地被**到其他實際伺服器上。而且正因為可以將排程器工作在應用層之下,這些負載均衡系統可以支援更多的網路服務協議,比如ftp,smtp,dns,以及流**和voip等應用。

dnat: 反向nat,將實際伺服器放置在內部網路,而作為閘道器的nat伺服器將來自使用者端的資料報**給內部網路的實際伺服器(需要修改的是資料報的目標位址和埠)。比較著名的例子是lvs。nat排程器的吞吐率很高是因為其在核心中進行請求**的較低開銷。

但是nat伺服器的頻寬卻成為了瓶頸。幸運的是,lvs提供了另一種負載均衡的方式,那就是直接路由。

5.直接路由lvs-dr

6. ip隧道

lvs-tun與lvs-dr不同的是,實際伺服器可以和排程器不在同乙個wan網段

負載均衡的幾種實現方式

1 http重定向負載均衡。這種負載均衡方案的優點是比較簡單,缺點是瀏覽器需要每次請求兩次伺服器才能拿完成一次訪問,效能較差。2 dns網域名稱解析負載均衡。dns網域名稱解析負載均衡的優點是將負載均衡工作交給dns,省略掉了網路管理的麻煩,缺點就是dns可能快取a記錄,不受 控制。3 反向 負載均...

負載均衡的幾種實現方式

1 http重定向負載均衡。負載均衡的幾種實現方式 這種負載均衡方案的優點是比較簡單,缺點是瀏覽器需要每次請求兩次伺服器才能拿完成一次訪問,效能較差。2 dns網域名稱解析負載均衡。dns網域名稱解析負載均衡的優點是將負載均衡工作交給dns,省略掉了網路管理的麻煩,缺點就是dns可能快取a記錄,不受...

實現負載均衡的幾種方式

當一台伺服器的單位時間內的訪問量越大時,伺服器壓力就越大,大到超過自身承受能力時,伺服器就會崩潰。為了避免伺服器崩潰,讓使用者有更好的體驗,我們通過負載均衡的方式來分擔伺服器壓力。我們可以建立很多很多伺服器,組成乙個伺服器集群,當使用者訪問 時,先訪問乙個中間伺服器,在讓這個中間伺服器在伺服器集群中...