比如配個nginx,做兩臺伺服器的負載均衡,一臺機子比較老是以前的配置比較低,一臺是新機子配置高,那我們的分配權重可能就是3-7分,而不是五五開
。所以是預想分配。但是業界還是習慣按照負載均衡來表達這個任務分配機制。
負載均衡分類
負載均衡常見的有:軟體負載均衡、硬體負載均衡、DNS負載均衡。
軟體負載均衡
軟體負載均衡是最常見的,大小公司都需要用到它。
軟體負載均衡是通過負載均衡功能的軟體來實現負載均衡,常見的軟體有LVS、Nginx、HAProxy。
軟體負載負載均衡又分四層和七層負載均衡,四層負載均衡就是在網路層利用IP地址埠進行請求的轉發,基本上就是起個轉發分配作用。而七層負載均衡就是可以根據訪問使用者的HTTP請求頭、URL資訊將請求轉發到特定的主機。 LVS為四層負載均衡。Nginx、HAProxy可四可七。
Nginx是萬級別的,通常只用它來做七層負載,LVS來做四層負載。LVS是十萬級別的,所以如果頂不住常見的也有這樣的搭配。 軟體負載均衡的優點在於便宜而且簡單靈活,就買個主機,裝下軟體,配置一下就能用了,配置也很簡單對於一般小型企業,或者併發量不高的企業來說就夠用了。而且在高峰期時容易擴容。缺點在於(和硬體負載均衡比)效能一般,流量很大的企業就用軟體負載均衡頂不住,沒防火牆或者防DDos攻擊等安全性功能。
硬體負載均衡
硬體負載均衡就是用一個硬體一個基礎網路裝置,類似我們的交換機啊這樣的硬體,來實現負載均衡。 常見的硬體有F5、A10。
優點就是:
1.功能強大,支援全域性負載均衡提供全面的複雜均衡演算法。
2.效能強悍,支援百萬以上的併發。
3.提供安全功能,例如防火牆,防DDos攻擊等。
這麼一聽我靠這麼吊誰不用啊趕緊買個。別急我們下面個圖片。 這網上找的,價格升序了最低也得15萬,高的我看到有90萬的。
缺點:1.貴!這算是它最大的缺點了。為了安全通常還得一主一備,嘖嘖。
2.擴充套件能力差,當訪問量突增的時候超過限度不能動態擴容。
DNS負載均衡
這個負載均衡時通過DNS來的,因為DNS解析同一個域名可以返回不同的ip。所以例如哈爾濱的人訪問百度就返回距離他近的那個機房的IP,海南的人訪問百度就返回距離他近的那個機房的IP。所以主要是用來實現地理級別的負載均衡。
優點就是:
1.簡單,交給DNS伺服器處理我們們都不用幹活
2.因為是就近訪問可以減少響應的時間,提升訪問速度
缺點:
1.DNS有快取而且快取時間較長,所以當機房遷移等需要修改DNS配置的時候,使用者可能還會訪問之前的IP,導致訪問失敗。
2.擴充套件能力差,因為運營商管理控制的,由不得我們定製或者擴充套件。
3.比較笨,不能區分伺服器之間的差異,也不能反映伺服器的當前執行狀態
使用套路
DNS負載均衡是地理級別的,硬體負載均衡對應的是叢集級別的,軟體負載均衡對應的是機器級別的。
不過一般而言像小公司或者流量不大的公司都是隻需要軟體負載均衡,也可能LVS都不需要上所以是按實際情況刪減上圖的一些東西。真正公司發展起來使用者量激增才會考慮多機房和上硬體,畢竟是需求的驅使和不差錢了。
如有錯誤歡迎指正!
個人公眾號:yes的練級攻略
有相關面試進階(分散式、效能調優、經典書籍pdf)資料等待領取