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