999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

服務(wù)器集群中的負(fù)載均衡策略研究

2019-05-23 10:44:48陳崗
電腦知識與技術(shù) 2019年8期

陳崗

摘要:目前接入互聯(lián)網(wǎng)的應(yīng)用越來越多,服務(wù)器在使用時(shí)經(jīng)常會面臨并發(fā)量、資源使用率以及響應(yīng)時(shí)間等各種要求,單臺服務(wù)器通常難以滿足繁忙的業(yè)務(wù)。服務(wù)器集群可以解決單臺服務(wù)器的問題,但是又面臨著負(fù)載均衡的問題。Nginx可以實(shí)現(xiàn)負(fù)載均衡,能夠有效解決服務(wù)器集群,尤其是異構(gòu)機(jī)器的負(fù)載均衡問題。

關(guān)鍵詞:集群;負(fù)載均衡;動(dòng)態(tài);異構(gòu)

中圖分類號:G642 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2019)08-0009-02

互聯(lián)網(wǎng)技術(shù)和移動(dòng)技術(shù)的結(jié)合,使互聯(lián)網(wǎng)用戶訪問量呈級數(shù)級別的不斷增長,如此龐大的用戶量給網(wǎng)絡(luò)系統(tǒng)運(yùn)營以及服務(wù)器性能帶來的巨大的挑戰(zhàn)。很多情況下一臺服務(wù)器已經(jīng)難以滿足大量并發(fā)訪問的需求。為了解決服務(wù)器的單點(diǎn)性能問題,通常是搭建一個(gè)服務(wù)器集群響應(yīng)用戶請求。

大量用戶請求如何均衡的分發(fā)到服務(wù)器集群中的各個(gè)服務(wù)器上是一個(gè)非常關(guān)鍵的問題,這就是通常所說的負(fù)載均衡。負(fù)載均衡技術(shù)可以使服務(wù)器集群中的各服務(wù)器按照其性能合理地按比例分擔(dān)用戶請求,以保證性能高的服務(wù)器能夠更好、更快的處理請求。

1 Nginx技術(shù)及負(fù)載均衡

Nginx誕生于2004年,是一款反向代理服務(wù)器,具備高可靠性、高擴(kuò)展性的優(yōu)點(diǎn),在支持大量的并發(fā)連接的同時(shí)內(nèi)存消耗還相對比較低,因此非常適合用于充當(dāng)服務(wù)器負(fù)載均衡器[1]。Nginx的內(nèi)部支持多種高級的數(shù)據(jù)結(jié)構(gòu)及開發(fā)模型,因此同等條件下要比apache tomcat的性能好。

Nginx是一種高度模塊化的負(fù)載均衡產(chǎn)品,包括event、upstream、fastcgi、memcached、Proxy等模塊,event模塊主要用于處理各種采集管理和分發(fā)的事件,fastcgi模塊用于便利地調(diào)用c、python等各種語言編寫的程序,upstream模塊可以解決一個(gè)請求有多個(gè)TCP連接、多個(gè)讀寫事件的問題,從而實(shí)現(xiàn)Nginx和上游服務(wù)器的交互;memcached模塊使Nginx能夠從后端的服務(wù)器獲取響應(yīng),服務(wù)代理模塊能夠?qū)⒂脩舻恼埱髠鬟f到另外一臺服務(wù)器。

Nginx啟動(dòng)后有多個(gè)服務(wù)進(jìn)程,比如master進(jìn)程、worker進(jìn)程以及cache相關(guān)的進(jìn)程等。master進(jìn)程和worker進(jìn)程間的通信用于傳遞信息。master進(jìn)程通常就是Nginx的主進(jìn)程,此進(jìn)程并不實(shí)際執(zhí)行業(yè)務(wù),也不處理各種事件,而僅僅作為Nginx啟動(dòng)后的進(jìn)程組和用戶的交互接口;另外,master進(jìn)程還可以監(jiān)控worker進(jìn)程的執(zhí)行狀態(tài),在worker進(jìn)程意外終止時(shí)重新啟動(dòng)一個(gè)新的worker進(jìn)程。worker進(jìn)程一般是由master進(jìn)程fork產(chǎn)生的,作用是處理客戶端應(yīng)用程序與后端服務(wù)器間的數(shù)據(jù)交互和讀寫操作。

Nginx的upstream模塊的功能主要是實(shí)現(xiàn)用戶請求的負(fù)載均衡,其工程流程如圖1所示:

圖1 Nginx的upstream模塊工作流程

客戶端應(yīng)用的http請求發(fā)送給Nginx后,Nginx會根據(jù)請求向后端服務(wù)器發(fā)送TCP請求,后端服務(wù)器返回對應(yīng)的響應(yīng)報(bào)文[2]。Nginx會根據(jù)后端服務(wù)器的響應(yīng)報(bào)文決定是否轉(zhuǎn)發(fā)給客戶端。upstream模塊的處理機(jī)制會保證在處理Nginx上下游數(shù)據(jù)時(shí),可以根據(jù)上下游網(wǎng)絡(luò)的具體情況采取不同的措施,如果上下游網(wǎng)絡(luò)差距不大,那么為了更多的并發(fā)處理用戶請求,可以開辟一塊固定的內(nèi)存,用于處理上游的響應(yīng),同時(shí)把保存的響應(yīng)頁面返回給下游。如果上游網(wǎng)速比下游網(wǎng)速快很多,則需要開辟足夠大的內(nèi)存緩沖區(qū),以緩存上游響應(yīng),在必要時(shí)還需要將其緩存到磁盤上。

2 負(fù)載均衡策略

為了更加高效的處理用戶請求,需要有一個(gè)高效的負(fù)載均衡策略,常用的負(fù)載均衡策略包括加權(quán)輪詢策略、IP Hash策略以及第三方負(fù)載均衡策略[3]。

加權(quán)輪詢策略需要事先為每臺服務(wù)器設(shè)置一個(gè)權(quán)值,代表各服務(wù)器處理用戶請求能力的高低。Nginx在分發(fā)請求時(shí),就會有些選擇權(quán)重大的服務(wù)器,每次分發(fā)請求后都會更新權(quán)值,然后再分發(fā)新的請求。一段時(shí)間后各服務(wù)器處理的請求數(shù)量比值趨近于權(quán)值之比。這種負(fù)載均衡策略不依賴于客戶端,因此用戶請求能夠更合理地加權(quán)均勻分配到后端服務(wù)器。然而,同一個(gè)客戶端的多次請求可能被分配到不同的后端服務(wù)器處理,因此難以滿足需要會話保持的場景。

IP Hash負(fù)載均衡策略解決了同一客戶端的多次請求可能被分配到不同后端服務(wù)器的問題,先根據(jù)客戶端的IP計(jì)算一個(gè)哈希值,然后根據(jù)哈希值選擇后端服務(wù)器進(jìn)行分發(fā),這樣就克服了加權(quán)輪詢策略難以保持會話的不足。但是IP Hash策略實(shí)現(xiàn)負(fù)載均衡的依據(jù)是客戶端的IP地址,因此對于使用NAT代理的用戶而言,如果短時(shí)間內(nèi)大量使用同一NAT代理的用戶發(fā)起請求,則某臺后端服務(wù)器可能面臨巨大的壓力。

第三方負(fù)載均衡策略需要在安裝Nginx過程中編譯添加進(jìn)去,可以支持Fair Weight策略以及最小連接數(shù)策略。Fair Weight策略根據(jù)后端服務(wù)器的響應(yīng)時(shí)間分配請求,優(yōu)先分配響應(yīng)時(shí)間端的服務(wù)器;最小連接數(shù)策略優(yōu)先選擇連接數(shù)最少的后端服務(wù)器。雖然這些第三方負(fù)載均衡策略在一定程度上反映并利用了后端服務(wù)器的處理能力,但是它們還都是僅僅在加權(quán)輪詢的基礎(chǔ)上添加了一定的動(dòng)態(tài)反饋,并沒有實(shí)質(zhì)性的改進(jìn)。

基于內(nèi)容分類的負(fù)載均衡算法會把用戶的請求分為若干類,并均勻地分配給各個(gè)服務(wù)器,以保證各個(gè)服務(wù)器得到的請求量大致相當(dāng)。基于HTTP請求內(nèi)容的負(fù)載均衡策略把用戶的HTTP請求內(nèi)容分為靜態(tài)請求和動(dòng)態(tài)請求兩類,靜態(tài)請求只需要提高請求的cache命中率即可,動(dòng)態(tài)請求才考慮進(jìn)行負(fù)載均衡。

在實(shí)現(xiàn)負(fù)載均衡時(shí),服務(wù)器當(dāng)前的負(fù)載信息是關(guān)鍵,因此對負(fù)載信息評價(jià)的準(zhǔn)確性直接影響到負(fù)載均衡策略的選取。經(jīng)典的負(fù)載信息評價(jià)標(biāo)準(zhǔn)會綜合考慮服務(wù)器的CPU利用率、內(nèi)存使用率、網(wǎng)絡(luò)帶寬利用率以及磁盤IO情況等各種信息。

3 業(yè)務(wù)異構(gòu)集群的負(fù)載均衡

WEB請求通常會涉及到多種業(yè)務(wù),比如發(fā)表型業(yè)務(wù)、事務(wù)處理型業(yè)務(wù)、多媒體型業(yè)務(wù)等[4]。在多業(yè)務(wù)組成的業(yè)務(wù)異構(gòu)集群中,業(yè)務(wù)類型的不同會在很大程度上影響后端服務(wù)器的資源使用情況。例如,對單臺服務(wù)器而言事務(wù)性業(yè)務(wù)使用的資源主要是磁盤I/O,因此如果此類業(yè)務(wù)被分配到磁盤I/O相對差的服務(wù)器時(shí)就會減慢用戶的處理速度;對集群整體而言,電商類業(yè)務(wù)需要較高的服務(wù)器性能。

在多業(yè)務(wù)異構(gòu)集群的情況下,可以先把異構(gòu)服務(wù)器集群分為不同的業(yè)務(wù)子集群,然后依據(jù)動(dòng)態(tài)負(fù)載均衡策略分發(fā)請求;另外,在請求分發(fā)過程中,如果某一個(gè)業(yè)務(wù)子集群的負(fù)載過重,則需要從負(fù)載較輕的業(yè)務(wù)子集群中抽調(diào)服務(wù)器,以緩解負(fù)載壓力。基于這樣的思路,可以把負(fù)載均衡模塊劃分為請求分類模塊、請求分發(fā)模塊、負(fù)載反饋模塊。

請求分類模塊的作用是把用戶的請求分成不同的類型,以便有針對性的分發(fā)到不同服務(wù)器。請求分發(fā)模塊根據(jù)識別的用戶請求,然后詢問后端服務(wù)器的IP地址,并將用戶請求分發(fā)到對應(yīng)的IP。負(fù)載反饋模塊維護(hù)業(yè)務(wù)集群的結(jié)構(gòu)信息和整體負(fù)載信息,并根據(jù)實(shí)際情況選擇不同的負(fù)載均衡策略。

具體的服務(wù)請求分發(fā)步驟是:1) 用戶發(fā)起請求。通俗地講,就是在瀏覽器中輸入url地址并回車后,請求被發(fā)送到負(fù)載均衡器。2) 請求分類。請求分類模塊接收到用戶的請求url后,會把請求url轉(zhuǎn)換為(url ,type)的格式,然后發(fā)送給請求分發(fā)模塊。3) 請求分發(fā)。請求分發(fā)模塊根據(jù)其維護(hù)的每個(gè)用戶請求的負(fù)載值,把(type, request)發(fā)送給負(fù)載采集模塊,以便循環(huán)后端服務(wù)器的IP地址。4) 負(fù)載采集模塊根據(jù)一定的負(fù)載均衡策略,選擇合適的后端服務(wù)器處理用戶請求。

在請求分發(fā)過程中,如果在短時(shí)間內(nèi)用戶的請求都是某一類固定的業(yè)務(wù),那么可能會導(dǎo)致處理此業(yè)務(wù)的業(yè)務(wù)子集群負(fù)載過高,而且其他服務(wù)器因?yàn)榭臻e而沒有得到合理的利用。為了解決這一“旱澇不均”的現(xiàn)象,在負(fù)載分發(fā)過程中還需要進(jìn)行服務(wù)器的動(dòng)態(tài)劃分,也就是在出現(xiàn)某類業(yè)務(wù)集中處理、負(fù)載過高的情況時(shí),就從負(fù)載較輕的業(yè)務(wù)子集群中臨時(shí)抽調(diào)服務(wù)器,以緩解負(fù)載較高業(yè)務(wù)集群的壓力,在處理完畢后再把抽調(diào)的服務(wù)器歸還到原來的業(yè)務(wù)子集群。這樣一來,服務(wù)器的動(dòng)態(tài)劃分既解決了用戶請求分發(fā)的負(fù)載均衡問題,又有效提高了后端服務(wù)器集群的利用效率。

4 總結(jié)

本文對服務(wù)器集群的負(fù)載均衡技術(shù)進(jìn)行研究。首先,介紹了Nginx技術(shù)及其負(fù)載均衡模塊,接下來在此基礎(chǔ)上闡述了動(dòng)態(tài)負(fù)載均衡技術(shù),以及用于異構(gòu)集群的負(fù)載均衡技術(shù),對服務(wù)器集群的負(fù)載均衡研究有一定的參考意義。

參考文獻(xiàn):

[1] 王永輝.基于Nginx高性能web服務(wù)器性能優(yōu)化與負(fù)載均衡的改進(jìn)和實(shí)現(xiàn)[D].電子科技大學(xué),2017.

[2] A. Yousofi, M. Banitaba,S. Yazdanpanah.A Novel Method for Achieving Load Balancing in Web Clusters Based on Congestion Control and Cost Reduction[J]. IEEE Symposium on Computers &informatics, 2017,17(9): 55-58.

[3] 鄧珍榮,唐興興,黃文明,等.一種Web服務(wù)器集群負(fù)載均衡調(diào)度算法[J].計(jì)算機(jī)應(yīng)用與軟件,2013(10):53-56.

[4] 陳偉. 異構(gòu)Web集群中基于動(dòng)態(tài)反饋機(jī)制的負(fù)載均衡的研究與實(shí)現(xiàn)[D].重慶大學(xué),2018.

【通聯(lián)編輯:王力】

主站蜘蛛池模板: 99久久精品国产精品亚洲 | 在线观看无码a∨| 992tv国产人成在线观看| 国产在线小视频| 熟妇丰满人妻av无码区| 国产精品专区第一页在线观看| h网址在线观看| 中日无码在线观看| 中文字幕亚洲综久久2021| 中日无码在线观看| 乱人伦视频中文字幕在线| 蜜芽国产尤物av尤物在线看| a国产精品| 91精品伊人久久大香线蕉| 欧美在线导航| 亚洲高清在线播放| 青青草国产在线视频| 国产男女免费视频| 亚洲AV无码久久天堂| 国产欧美日韩免费| 18禁黄无遮挡网站| 91小视频在线| 久一在线视频| 中文字幕有乳无码| 色综合久久久久8天国| 亚洲性色永久网址| 日韩东京热无码人妻| 一级全免费视频播放| 国产精品偷伦在线观看| 国产午夜一级淫片| 依依成人精品无v国产| 欧美午夜小视频| 97精品久久久大香线焦| 国产欧美日韩va| 九九九精品成人免费视频7| 免费A∨中文乱码专区| 国产av剧情无码精品色午夜| 在线播放国产99re| 国产欧美自拍视频| 日本一本在线视频| 综合五月天网| 国产大片喷水在线在线视频| 一区二区三区成人| 国产日韩欧美在线视频免费观看| 久久亚洲美女精品国产精品| 精品少妇人妻无码久久| 国产精品13页| 理论片一区| 国产色婷婷| 99久久精品视香蕉蕉| 国内精品视频在线| 国产精品免费入口视频| 国产网友愉拍精品视频| 伊人久久影视| 在线看AV天堂| 国产黑丝一区| 国产三级a| 亚洲天堂网在线观看视频| 国产精品精品视频| 熟女日韩精品2区| 国产在线拍偷自揄拍精品| 亚洲六月丁香六月婷婷蜜芽| 亚洲 日韩 激情 无码 中出| 国产黄色免费看| 一本久道久综合久久鬼色| 人人爽人人爽人人片| 亚洲丝袜中文字幕| 国产自在线播放| 日韩中文字幕免费在线观看| 日韩美女福利视频| 久久精品国产精品青草app| 欧美成人区| 亚洲系列无码专区偷窥无码| 日韩午夜福利在线观看| 免费人欧美成又黄又爽的视频| 国产91在线|日本| 亚洲中文字幕久久精品无码一区| 国产日韩精品欧美一区喷| 欧美特黄一级大黄录像| 在线观看无码av五月花| 伊人91视频| 色妞永久免费视频|