免费高清特黄a大片,九一h片在线免费看,a免费国产一级特黄aa大,国产精品国产主播在线观看,成人精品一区久久久久,一级特黄aa大片,俄罗斯无遮挡一级毛片

分享

服務(wù)器負(fù)載均衡的基本功能和實(shí)現(xiàn)原理

 guli3057 2015-01-16

負(fù)載均衡設(shè)備作為縱跨網(wǎng)絡(luò)2-7層協(xié)議的設(shè)備,往往放置在網(wǎng)絡(luò)設(shè)備和應(yīng)用設(shè)備的連接處,對(duì)工程師在網(wǎng)絡(luò)和應(yīng)用基本知識(shí)方面的要求遠(yuǎn)高于其他設(shè)備,所以我們要在基本功能的理解上下更多的功夫。負(fù)載均衡設(shè)備還有另外一個(gè)稱呼:4/7層交換機(jī),但它首先是個(gè)2-3層交換機(jī),這要求我們首先掌握2-3層的基本知識(shí),然后才是本文介紹的內(nèi)容。

服務(wù)器負(fù)載均衡有三大基本Feature:負(fù)載均衡算法,健康檢查和會(huì)話保持,這三個(gè)Feature是保證負(fù)載均衡正常工作的基本要素。其他一些功能都是在這三個(gè)功能之上的一些深化。下面我們具體介紹一下各個(gè)功能的作用和原理。

在沒有部署負(fù)載均衡設(shè)備之前,用戶直接訪問服務(wù)器地址(中間或許有在防火墻上將服務(wù)器地址映射成別的地址,但本質(zhì)上還是一對(duì)一的訪問)。當(dāng)單臺(tái)服務(wù)器由于性能不足無法處理眾多用戶的訪問時(shí),就要考慮用多臺(tái)服務(wù)器來提供服務(wù),實(shí)現(xiàn)的方式就是負(fù)載均衡。負(fù)載均衡設(shè)備的實(shí)現(xiàn)原理是把多臺(tái)服務(wù)器的地址映射成一個(gè)對(duì)外的服務(wù)IP(我們通常稱之為VIP,關(guān)于服務(wù)器的映射可以直接將服務(wù)器IP映射成VIP地址,也可以將服務(wù)器IP:Port映射成VIP:Port,不同的映射方式會(huì)采取相應(yīng)的健康檢查,在端口映射時(shí),服務(wù)器端口與VIP端口可以不相同),這個(gè)過程對(duì)用戶端是透明的,用戶實(shí)際上不知道服務(wù)器是做了負(fù)載均衡的,因?yàn)樗麄冊(cè)L問的還是一個(gè)目的IP,那么用戶的訪問到達(dá)負(fù)載均衡設(shè)備后,如何把用戶的訪問分發(fā)到合適的服務(wù)器就是負(fù)載均衡設(shè)備要做的工作了,具體來說用到的就是上述的三大Feature。

我們來做一個(gè)詳細(xì)的訪問流程分析:

用戶(IP:207.17.117.20)訪問域名www.,首先會(huì)通過DNS查詢解析出這個(gè)域名的公網(wǎng)地址:199.237.202.124,接下來用戶207.17.117.20會(huì)訪問199.237.202.124這個(gè)地址,因此數(shù)據(jù)包會(huì)到達(dá)負(fù)載均衡設(shè)備,接下來負(fù)載均衡設(shè)備會(huì)把數(shù)據(jù)包分發(fā)到合適的服務(wù)器,看下圖:

 

 

負(fù)載均衡設(shè)備在將數(shù)據(jù)包發(fā)給服務(wù)器時(shí),數(shù)據(jù)包是做了一些變化的,如上圖所示,數(shù)據(jù)包到達(dá)負(fù)載均衡設(shè)備之前,源地址是:207.17.117.20,目的地址是:199.237.202.124, 當(dāng)負(fù)載均衡設(shè)備將數(shù)據(jù)包轉(zhuǎn)發(fā)給選中的服務(wù)器時(shí),源地址還是:207.17.117.20,目的地址變?yōu)?span lang="EN-US">172.16.20.1,我們稱這種方式為目的地址NAT(DNAT)。一般來說,在服務(wù)器負(fù)載均衡中DNAT是一定要做的(還有另一種模式叫做服務(wù)器直接返回-DSR,是不做DNAT的,我們將另行討論),而源地址根據(jù)部署模式的不同,有時(shí)候也需要轉(zhuǎn)換成別的地址,我們稱之為:源地址NAT(SNAT),一般來說,旁路模式需要做SNAT,而串接模式不需要,本示意圖為串接模式,所以源地址沒做NAT。

我們?cè)倏捶?wù)器的返回包,如下圖所示,也經(jīng)過了IP地址的轉(zhuǎn)換過程,不過應(yīng)答包中源/目的地址與請(qǐng)求包正好對(duì)調(diào),從服務(wù)器回來的包源地址為172.16.20.1,目的地址為207.17.117.20,到達(dá)負(fù)載均衡設(shè)備后,負(fù)載均衡設(shè)備將源地址改為199.237.202.124,然后轉(zhuǎn)發(fā)給用戶,保證了訪問的一致性。

 

以上是單個(gè)數(shù)據(jù)包的處理流程。那么負(fù)載均衡設(shè)備是怎么選擇服務(wù)器的呢? 這就是我們要介紹的第一個(gè)Feature:

負(fù)載均衡算法

一般來說負(fù)載均衡設(shè)備都會(huì)默認(rèn)支持多種負(fù)載均衡分發(fā)策略,例如:

  輪詢(RoundRobin)將請(qǐng)求順序循環(huán)地發(fā)到每個(gè)服務(wù)器。當(dāng)其中某個(gè)服務(wù)器發(fā)生故障,AX就把其從順序循環(huán)隊(duì)列中拿出,不參加下一次的輪詢,直到其恢復(fù)正常。

  比率(Ratio):給每個(gè)服務(wù)器分配一個(gè)加權(quán)值為比例,根椐這個(gè)比例,把用戶的請(qǐng)求分配到每個(gè)服務(wù)器。當(dāng)其中某個(gè)服務(wù)器發(fā)生故障,AX就把其從服務(wù)器隊(duì)列中拿出,不參加下一次的用戶請(qǐng)求的分配,直到其恢復(fù)正常。

  優(yōu)先權(quán)(Priority):給所有服務(wù)器分組,給每個(gè)組定義優(yōu)先權(quán),將用戶的請(qǐng)求分配給優(yōu)先級(jí)最高的服務(wù)器組(在同一組內(nèi),采用預(yù)先設(shè)定的輪詢或比率算法,分配用戶的請(qǐng)求);當(dāng)最高優(yōu)先級(jí)中所有服務(wù)器或者指定數(shù)量的服務(wù)器出現(xiàn)故障,AX將把請(qǐng)求送給次優(yōu)先級(jí)的服務(wù)器組。這種方式,實(shí)際為用戶提供一種熱備份的方式。

  最少連接數(shù)(LeastConnection):AX會(huì)記錄當(dāng)前每臺(tái)服務(wù)器或者服務(wù)端口上的連接數(shù),新的連接將傳遞給連接數(shù)最少的服務(wù)器。當(dāng)其中某個(gè)服務(wù)器發(fā)生故障,AX就把其從服務(wù)器隊(duì)列中拿出,不參加下一次的用戶請(qǐng)求的分配,直到其恢復(fù)正常。

  最快響應(yīng)時(shí)間(Fast Reponse time):新的連接傳遞給那些響應(yīng)最快的服務(wù)器。當(dāng)其中某個(gè)服務(wù)器發(fā)生故障,AX就把其從服務(wù)器隊(duì)列中拿出,不參加下一次的用戶請(qǐng)求的分配,直到其恢復(fù)正常。

以上為通用的負(fù)載均衡算法,還有一些算法根據(jù)不同的需求也可能會(huì)用到,例如:

  哈希算法( hash):  將客戶端的源地址,端口進(jìn)行哈希運(yùn)算,根據(jù)運(yùn)算的結(jié)果轉(zhuǎn)發(fā)給一臺(tái)服務(wù)器進(jìn)行處理,當(dāng)其中某個(gè)服務(wù)器發(fā)生故障,就把其從服務(wù)器隊(duì)列中拿出,不參加下一次的用戶請(qǐng)求的分配,直到其恢復(fù)正常。

  基于策略的負(fù)載均衡:針對(duì)不同的數(shù)據(jù)流設(shè)置導(dǎo)向規(guī)則,用戶可自行編輯流量分配策略,利用這些策略對(duì)通過的數(shù)據(jù)流實(shí)施導(dǎo)向控制。

  基于數(shù)據(jù)包的內(nèi)容分發(fā):例如判斷HTTPURL,如果URL中帶有.jpg的擴(kuò)展名,就把數(shù)據(jù)包轉(zhuǎn)發(fā)到指定的服務(wù)器。

 

繼續(xù)看圖分析,第二個(gè)用戶207.17.117.21也訪問www.,負(fù)載均衡設(shè)備根據(jù)負(fù)載均衡算法將第二個(gè)用戶的請(qǐng)求轉(zhuǎn)發(fā)到第二臺(tái)服務(wù)器來處理。

 

 

假設(shè)在工作過程中,突然有一臺(tái)服務(wù)器出現(xiàn)問題怎么辦? 這就涉及到我們要介紹的第二個(gè)Feature:

健康檢查

健康檢查用于檢查服務(wù)器開放的各種服務(wù)的可用狀態(tài)。負(fù)載均衡設(shè)備一般會(huì)配置各種健康檢查方法,例如Ping,TCPUDP,HTTPFTP,DNS等。Ping屬于第三層的健康檢查,用于檢查服務(wù)器IP的連通性,而TCP/UDP屬于第四層的健康檢查,用于檢查服務(wù)端口的UP/DOWN,如果要檢查的更準(zhǔn)確,就要用到基于7層的健康檢查,例如創(chuàng)建一個(gè)HTTP健康檢查,Get一個(gè)頁(yè)面回來,并且檢查頁(yè)面內(nèi)容是否包含一個(gè)指定的字符串,如果包含,則服務(wù)是UP的,如果不包含或者取不回頁(yè)面,就認(rèn)為該服務(wù)器的Web服務(wù)是不可用(DOWN)的。如下圖所示,負(fù)載均衡設(shè)備檢查到172.16.20.3這臺(tái)服務(wù)器的80端口是DOWN的,負(fù)載均衡設(shè)備將不把后面的連接轉(zhuǎn)發(fā)到這臺(tái)服務(wù)器,而是根據(jù)算法將數(shù)據(jù)包轉(zhuǎn)發(fā)到別的服務(wù)器。創(chuàng)建健康檢查時(shí)可以設(shè)定檢查的間隔時(shí)間和嘗試次數(shù),例如設(shè)定間隔時(shí)間為5秒,嘗試次數(shù)為3,那么負(fù)載均衡設(shè)備每隔5秒發(fā)起一次健康檢查,如果檢查失敗,則嘗試3次,如果3次都檢查失敗,則把該服務(wù)標(biāo)記為DOWN,然后服務(wù)器仍然會(huì)每隔5秒對(duì)DOWN的服務(wù)器進(jìn)行檢查,當(dāng)某個(gè)時(shí)刻發(fā)現(xiàn)該服務(wù)器健康檢查又成功了,則把該服務(wù)器重新標(biāo)記為UP。健康檢查的間隔時(shí)間和嘗試次數(shù)要根據(jù)綜合情況來設(shè)置,原則是既不會(huì)對(duì)業(yè)務(wù)產(chǎn)生影響,又不會(huì)對(duì)負(fù)載均衡設(shè)備造成較大負(fù)擔(dān)。

 

 

 

 

假設(shè)是同一個(gè)用戶繼續(xù)訪問,后續(xù)的連接會(huì)怎么處理呢? 看下圖:

 

 

 

 

用戶207.17.117.25之前發(fā)起的第一個(gè)連接是207.17.117.254003-199.237.202.127:80,負(fù)載均衡設(shè)備將該連接轉(zhuǎn)發(fā)到了172.16.20.4,接著發(fā)起第二個(gè)連接207.17.117.254004-199.237.202.127:80,我們看到該連接還是轉(zhuǎn)發(fā)到了服務(wù)器172.16.20.4,為什么呢?因?yàn)樨?fù)載均衡設(shè)備配置了會(huì)話保持。

會(huì)話保持

會(huì)話保持用于保持會(huì)話的連續(xù)性和一致性,由于服務(wù)器之間很難做到實(shí)時(shí)同步用戶訪問信息,這就要求把用戶的前后訪問會(huì)話保持到一臺(tái)服務(wù)器上來處理。舉個(gè)例子,用戶訪問一個(gè)電子商務(wù)網(wǎng)站,如果用戶登錄時(shí)是由第一臺(tái)服務(wù)器來處理的,但用戶購(gòu)買商品的動(dòng)作卻由第二臺(tái)服務(wù)器來處理,第二臺(tái)服務(wù)器由于不知道用戶信息,所以本次購(gòu)買就不會(huì)成功。這種情況就需要會(huì)話保持,把用戶的操作都通過第一臺(tái)服務(wù)器來處理才能成功。當(dāng)然并不是所有的訪問都需要會(huì)話保持,例如服務(wù)器提供的是靜態(tài)頁(yè)面比如網(wǎng)站的新聞?lì)l道,各臺(tái)服務(wù)器都有相同的內(nèi)容,這種訪問就不需要會(huì)話保持。

負(fù)載均衡設(shè)備一般會(huì)默認(rèn)配置一些會(huì)話保持的選項(xiàng),例如源地址的會(huì)話保持,Cookie會(huì)話保持等,基于不同的應(yīng)用要配置不同的會(huì)話保持,否則會(huì)引起負(fù)載的不均衡甚至訪問異常。具體可參考本人的另一篇拙作:《不同應(yīng)用環(huán)境會(huì)話保持方式選擇》。

本文介紹了負(fù)載均衡的基本功能和實(shí)現(xiàn)原理,看起來并不難,但負(fù)載均衡涉及的知識(shí)其實(shí)非常的廣泛,根據(jù)各個(gè)用戶系統(tǒng)的不同,我們要熟悉不同的協(xié)議和應(yīng)用流程,甚至涉及到某些開發(fā)語(yǔ)言和軟件平臺(tái),否則在出現(xiàn)故障的時(shí)候,我們可能沒有能力做出有效的判斷,從這個(gè)意義上來說,一個(gè)負(fù)載均衡設(shè)備的工程師要掌握網(wǎng)絡(luò),應(yīng)用和系統(tǒng)等各方面的知識(shí),這些都要當(dāng)作基礎(chǔ)來積累。

wyl.

 

本文出自 “ADC技術(shù)博客” 博客,請(qǐng)務(wù)必保留此出處http://virtualadc.blog.51cto.com/3027116/615836

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多