常用的負載均衡方法
很多的**一開始並不需要太大的規模,但是做為**設計者從一開始就必須考慮到擴充套件,做乙個可擴充套件性強的架構。所謂可擴充套件性就是系統通過規模的擴充套件來提高系統的承載能力,畢竟伺服器自身的垂直擴充套件很快就會受到制約,單機很快便不能滿足我們的需求,因此這種能力往往通過增加物理伺服器或集群節點等方面來實現,這種能力越強,承載能力可提公升的空間也越大。而web站點的水平擴充套件,負載均衡是一種最常見的手段。下面介紹一下幾種實現負載均衡的方式。
http重定向
http重定向,相信對於所有web程式設計師都不陌生,例如我們請求某個頁面時,被轉向登入頁,登入頁面之後又被轉到了某個頁面。大致來說就是,瀏覽器請求某個url後,伺服器通過http響應頭資訊中的location標記返回乙個新的url,這樣瀏覽器主會繼續請求這個新的url,完成自動跳轉。也正是因為http重定向有請求轉移和自動跳轉的能力,所以我們就可以用它來實現負載均衡以實現web擴充套件。
dns負載均衡
我們知道dns是負責解析網域名稱的,當我們用網域名稱訪問站點時,實際上都會經過dns伺服器來獲取網域名稱指向的ip,實際上dns伺服器完成了網域名稱到ip的對映,同樣這個對映可以是一對多的,也就是dns可以把對網域名稱的請求按照一定的策略分配到不同的伺服器上,這樣我們就可以依此來實現負載均衡。貌似和http重定向很樣,但是實現的機制卻是完全不同的。(在window下可以用nslookup命令查詢網域名稱對應的ip位址列表,這個命令會返回離你最近的dns伺服器快取的記錄並不一定是全部)
反向**負載均衡
我們之前的快取介紹中,介紹過反向**伺服器,它同樣可以作為排程器來實現負載均衡系統。反向**伺服器核心工作是**http請求,它工作在http層面,也就是tcp七層中的第七層應用層,因此基於反射**的負載均衡系統也稱為七層負載均衡。目前幾乎所有主流web伺服器都支援基於反向**的負載均衡,因此實現它並不困難。
ip負載均衡
基於ip負載均衡的系統工作在傳輸層,會對資料報中的ip位址和埠資訊進行修改,所以也稱為四層負載均衡。它會在資料到達應用層之前,已完成**,因些這工作都是由系統核心來完成,應用程式對此無能為力,當然效能來說也會很大的提公升。
直接路由
不同於ip負載均衡,直接路由負載均衡高度器工作在資料鏈路層,它通過修改資料報的目標mac位址,將資料報**到實際伺服器,不同的是,這些處理的結果直接傳送給使用者,不再經過排程器。這時我們的實際伺服器必須直接連線到外網,並且不在以排程伺服器為預設閘道器。
ip隧道
簡單的說,就是排程器將收到的資料報封裝到乙個新的ip資料報中,轉交給實現伺服器,然後實際伺服器可以處理資料報直接響應客戶端。
常用負載均衡
http 重定向 對於http 重定向,你一定不陌生,它可以將 http 請求進行轉移,在 web 開發中我們經常會用它來完成自動跳轉,比如使用者登入成功後跳轉到相應的管理頁面。這種重定向完全由http 定義,並且由http 和web 伺服器共同實現。很簡單,當http 比如瀏覽器 向web伺服器請...
常用的負載均衡策略
將請求順序迴圈地發到每個伺服器。當其中某個伺服器發生故障,ax就把其從順序迴圈佇列中拿出,不參加下一次的輪詢,直到其恢復正常 給每個伺服器分配乙個加權值為比例,根椐這個比例,把使用者的請求分配到每個伺服器。當其中某個伺服器發生故障,ax就把其從伺服器佇列中拿出,不參加下一次的使用者請求的分配,直到其...
負載均衡的常用演算法
1 隨機演算法 負載均衡方法隨機的把負載分配到各個可用的伺服器上,通過隨機數生成演算法選取乙個伺服器,然後把連線傳送給它。同樣乙個請求一會落到機器a,一會落到機器b上,cache會被頻繁淘汰,使得cache命中率低。2 輪詢演算法 輪詢演算法按順序把每個新的連線請求分配給下乙個伺服器,最終把所有請求...