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