服務(wù)器負(fù)載均衡方案是怎樣的?負(fù)載均衡算法有哪些?
負(fù)載均衡是屬于服務(wù)器的一種應(yīng)用技術(shù),它是建立在現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu)上面的,能夠提高網(wǎng)絡(luò)的可用性和靈活性,那么服務(wù)器負(fù)載均衡方案是怎樣的?負(fù)載均衡算法有哪些呢?下面新網(wǎng)就來談?wù)劇?
HTTP 重定向當(dāng)HTTP代理(如瀏覽器)向Web服務(wù)器請(qǐng)求某個(gè)URL后,Web 服務(wù)器可以通過HTTP響應(yīng)頭信息中的Location 標(biāo)記來返回一個(gè)新的URL,這意味著HTTP代理需要繼續(xù)請(qǐng)求這個(gè)新的URL,這便完成了自動(dòng)跳轉(zhuǎn)。
DNS 負(fù)載均衡
DNS負(fù)責(zé)提供域名解析服務(wù),當(dāng)我們?cè)L問某個(gè)站點(diǎn)時(shí),實(shí)際上首先需要通過該站點(diǎn)域名的DNS服務(wù)器來獲取域名指向的IP地址,在這一過程中,DNS服務(wù)器完成了域名到IP地址的映射,同樣,這種映射也可以是一對(duì)多的,這時(shí)候DNS服務(wù)器便充當(dāng)了負(fù)載均衡調(diào)度器(也稱均衡器)。
反向代理服務(wù)器的核心工作便是轉(zhuǎn)發(fā) HTTP 請(qǐng)求,因此它工作在 HTTP 層面,也就是TCP七層結(jié)構(gòu)中的應(yīng)用層(第七層),所以基于反向代理的負(fù)載均衡也稱為七層負(fù)載均衡,實(shí)現(xiàn)它并不困難,目前幾乎所有主流的 Web 服務(wù)器都熱衷于支持基于反向代理的負(fù)載均衡。
在數(shù)據(jù)鏈路層(第二層)、網(wǎng)絡(luò)層(第三層)以及傳輸層(四層)都可以實(shí)現(xiàn)不同機(jī)制的負(fù)載均衡,但有所不同的是,這些負(fù)載均衡調(diào)度器的工作必須由Linux 內(nèi)核來完成,因?yàn)槲覀兿MW(wǎng)絡(luò)數(shù)據(jù)包在從內(nèi)核緩沖區(qū)進(jìn)入進(jìn)程用戶地址空間之前,盡早地被轉(zhuǎn)發(fā)到其他實(shí)際服務(wù)器上。
現(xiàn)有的負(fù)載均衡算法主要分為靜態(tài)和動(dòng)態(tài)兩類。靜態(tài)負(fù)載均衡算法以固定的概率分配任務(wù),不考慮服務(wù)器的狀態(tài)信息,如輪轉(zhuǎn)算法、加權(quán)輪轉(zhuǎn)算法等;動(dòng)態(tài)負(fù)載均衡算法以服務(wù)器的實(shí)時(shí)負(fù)載狀態(tài)信息來決定任務(wù)的分配,如最小連接法、加權(quán)最小連接法等。
1、輪詢法
輪詢法,就是將用戶的請(qǐng)求輪流分配給服務(wù)器,就像是挨個(gè)數(shù)數(shù),輪流分配。這種算法比較簡單,他具有絕對(duì)均衡的優(yōu)點(diǎn),但是也正是因?yàn)榻^對(duì)均衡它必須付出很大的代價(jià),例如它無法保證分配任務(wù)的合理性,無法根據(jù)服務(wù)器承受能力來分配任務(wù)。
2、隨機(jī)法
隨機(jī)法,是隨機(jī)選擇一臺(tái)服務(wù)器來分配任務(wù)。它保證了請(qǐng)求的分散性達(dá)到了均衡的目的。同時(shí)它是沒有狀態(tài)的不需要維持上次的選擇狀態(tài)和均衡因子[5]。但是隨著任務(wù)量的增大,它的效果趨向輪詢后也會(huì)具有輪詢算法的部分缺點(diǎn)。
3、最小連接法
最小連接法,將任務(wù)分配給此時(shí)具有最小連接數(shù)的節(jié)點(diǎn),因此它是動(dòng)態(tài)負(fù)載均衡算法。一個(gè)節(jié)點(diǎn)收到一個(gè)任務(wù)后連接數(shù)就會(huì)加1,當(dāng)節(jié)點(diǎn)故障時(shí)就將節(jié)點(diǎn)權(quán)值設(shè)置為0,不再給節(jié)點(diǎn)分配任務(wù)。
常見的軟件負(fù)載均衡技術(shù)
1、基于DNS的負(fù)載均衡
由于在DNS服務(wù)器中,可以為多個(gè)不同的地址配置相同的名字,最終查詢這個(gè)名字的客戶機(jī)將在解析這個(gè)名字時(shí)得到其中一個(gè)地址,所以這種代理方式是通過DNS服務(wù)中的隨機(jī)名字解析域名和IP來實(shí)現(xiàn)負(fù)載均衡。
2、反向代理負(fù)載均衡(如Apache+JK2+Tomcat這種組合)
該種代理方式與普通的代理方式不同,標(biāo)準(zhǔn)代理方式是客戶使用代理訪問多個(gè)外部Web服務(wù)器,之所以被稱為反向代理模式是因?yàn)檫@種代理方式是多個(gè)客戶使用它訪問內(nèi)部Web服務(wù)器,而非訪問外部服務(wù)器。
3、基于NAT(Network Address Translation)的負(fù)載均衡技術(shù)(如Linux VirtualServer,簡稱LVS)
該技術(shù)通過一個(gè)地址轉(zhuǎn)換網(wǎng)關(guān)將每個(gè)外部連接均勻轉(zhuǎn)換為不同的內(nèi)部服務(wù)器地址,因此外部網(wǎng)絡(luò)中的計(jì)算機(jī)就各自與自己轉(zhuǎn)換得到的地址上的服務(wù)器進(jìn)行通信,從而達(dá)到負(fù)載均衡的目的。其中網(wǎng)絡(luò)地址轉(zhuǎn)換網(wǎng)關(guān)位于外部地址和內(nèi)部地址之間,不僅可以實(shí)現(xiàn)當(dāng)外部客戶機(jī)訪問轉(zhuǎn)換網(wǎng)關(guān)的某一外部地址時(shí)可以轉(zhuǎn)發(fā)到某一映射的內(nèi)部的地址上,還可使內(nèi)部地址的計(jì)算機(jī)能訪問外部網(wǎng)絡(luò)。
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科