產品詳情
咨詢QQ:97533892
互聯(lián)網(wǎng)早期,業(yè)務流量比較小并且業(yè)務邏輯比較簡單,單臺服務器便可以滿足基本的需求;但隨著互聯(lián)網(wǎng)的發(fā)展,業(yè)務流量越來越大并且業(yè)務邏輯也越來越復雜,單臺機器的性能問題以及單點問題凸顯了出來,因此需要多臺機器來進行性能的水平擴展以及避免單點故障。但是要如何將不同的用戶的流量分發(fā)到不同的服務器上面呢?
早期的方法是使用DNS做負載,通過給客戶端解析不同的IP地址,讓客戶端的流量直接到達各個服務器。但是這種方法有一個很大的缺點就是延時性問題,在做出調度策略改變以后,由于DNS各級節(jié)點的緩存并不會及時的在客戶端生效,而且DNS負載的調度策略比較簡單,無法滿足業(yè)務需求,因此就出現(xiàn)了負載均衡??蛻舳说牧髁渴紫葧竭_負載均衡服務器,由負載均衡服務器通過一定的調度算法將流量分發(fā)到不同的應用服務器上面,同時負載均衡服務器也會對應用服務器做周期性的健康檢查,當發(fā)現(xiàn)故障節(jié)點時便動態(tài)的將節(jié)點從應用服務器集群中剔除,以此來保證應用的高可用。負載均衡又分為四層負載均衡和七層負載均衡。四層負載均衡工作在OSI模型的傳輸層,主要工作是轉發(fā),它在接收到客戶端的流量以后通過修改數(shù)據(jù)包的地址信息將流量轉發(fā)到應用服務器。
七層負載均衡工作在OSI模型的應用層,因為它需要解析應用層流量,所以七層負載均衡在接到客戶端的流量以后,還需要一個完整的TCP/IP協(xié)議棧。七層負載均衡會與客戶端建立一條完整的連接并將應用層的請求流量解析出來,再按照調度算法選擇一個應用服務器,并與應用服務器建立另外一條連接將請求發(fā)送過去,因此七層負載均衡的主要工作就是代理。
3-IP負載均衡(SNAT)
IP負載均衡:即在網(wǎng)絡層通過修改請求目標地址進行負載均衡。
用戶請求數(shù)據(jù)包到達負載均衡服務器后,負載均衡服務器在操作系統(tǒng)內核進行獲取網(wǎng)絡數(shù)據(jù)包,根據(jù)負載均衡算法計算得到一臺真實的WEB服務器地址,然后將數(shù)據(jù)包的IP地址修改為真實的WEB服務器地址,不需要通過用戶進程處理。真實的WEB服務器處理完畢后,相應數(shù)據(jù)包回到負載均衡服務器,負載均衡服務器再將數(shù)據(jù)包源地址修改為自身的IP地址發(fā)送給用戶瀏覽器。
這里的關鍵在于真實WEB服務器相應數(shù)據(jù)包如何返回給負載均衡服務器,一種是負載均衡服務器在修改目的IP地址的同時修改源地址,將數(shù)據(jù)包源地址改為自身的IP,即源地址轉換(SNAT),另一種方案是將負載均衡服務器同時作為真實物理服務器的網(wǎng)關服務器,這樣所有的數(shù)據(jù)都會到達負載均衡服務器。
IP負載均衡在內核進程完成數(shù)據(jù)分發(fā),較反向代理均衡有更好的處理性能。但由于所有請求響應的數(shù)據(jù)包都需要經(jīng)過負載均衡服務器,因此負載均衡的網(wǎng)卡帶寬成為系統(tǒng)的瓶頸。
4-HTTP重定向負載均衡(少見)
HTTP重定向服務器是一臺普通的應用服務器,其唯一的功能就是根據(jù)用戶的HTTP請求計算一臺真實的服務器地址,并將真實的服務器地址寫入HTTP重定向響應中(響應狀態(tài)嗎302)返回給瀏覽器,然后瀏覽器再自動請求真實的服務器。
這種負載均衡方案的優(yōu)點是比較簡單,缺點是瀏覽器需要每次請求兩次服務器才能拿完成一次訪問,性能較差;使用HTTP302響應碼重定向,可能是搜索引擎判斷為SEO,降低搜索排名。重定向服務器自身的處理能力有可能成為瓶頸。因此這種方案在實際使用中并不見多。