終于把服務(wù)器負(fù)載均衡和客戶端負(fù)載均衡講清楚了

2021-02-21    分類: 網(wǎng)站建設(shè)

負(fù)載均衡概念

是指單臺(tái)服務(wù)器性能達(dá)到極限時(shí)通過服務(wù)器集群來橫向增加系統(tǒng)的吞吐量和性能。一說負(fù)載均衡我們想到的就是Ngnix,不和否認(rèn),Ngnix是負(fù)載均衡分廠棒的實(shí)現(xiàn)方式,之一!但是面試的時(shí)候面試官往往希望能夠通過一個(gè)螺絲釘能夠牽連出整個(gè)車間,如果單單回復(fù)Ngnix,想通過面試可能還欠些火候。


終于把服務(wù)器負(fù)載均衡和客戶端負(fù)載均衡講清楚了

服務(wù)器負(fù)載均衡

服務(wù)器負(fù)載均衡就是我們平時(shí)說的負(fù)載均衡,是指在服務(wù)器上游做服務(wù)分發(fā),常用的方式有一下幾種:

  • DNS域名解析負(fù)載均衡;假設(shè)我們的域名指向了多個(gè)IP地址,當(dāng)一個(gè)域名請(qǐng)求來時(shí),DNS服務(wù)器機(jī)進(jìn)行域名解析將域名轉(zhuǎn)換為IP地址是,在1:N的映射轉(zhuǎn)換中實(shí)現(xiàn)負(fù)載均衡。DNS服務(wù)器提供簡(jiǎn)單的負(fù)載均衡算法,但當(dāng)其中某臺(tái)服務(wù)器出現(xiàn)故障時(shí),通知DNS服務(wù)器移除當(dāng)前故障IP。
  • 反向代理負(fù)載均衡;反向代理只值對(duì)服務(wù)器的代理,代理服務(wù)器接受請(qǐng)求,通過負(fù)載均衡算法,將請(qǐng)求轉(zhuǎn)發(fā)給后端服務(wù)器,后端服務(wù)返回給代理服務(wù)器然后代理服務(wù)器返回到客戶端。反向代理服務(wù)器的優(yōu)點(diǎn)是隔離后端服務(wù)器和客戶端,使用雙網(wǎng)卡屏蔽真實(shí)服務(wù)器網(wǎng)絡(luò),安全性更好,相比較于DNS域名解決負(fù)載均衡,反向代理在故障處理方面更靈活,支持負(fù)載均衡算法的橫向擴(kuò)展。目前使用非常廣泛。當(dāng)然反向代理也需要考慮很多問題,比如單點(diǎn)故障,集群部署等。
  • IP負(fù)載均衡;我們都知道反向代理工作到HTTP層,本身開銷相對(duì)大一些,對(duì)性能有一定影響,LVS-NAT是一種衛(wèi)浴傳輸層的負(fù)載均衡,它通過修改接受的數(shù)據(jù)包目標(biāo)地址的方式實(shí)現(xiàn)負(fù)載均衡。Linux2.6.x以后版本內(nèi)置了IPVS,專注用于實(shí)現(xiàn)IP負(fù)載均衡,故而在Linux上IP負(fù)載均衡使用非常廣泛。LVS-DR工作在數(shù)據(jù)鏈路層,比LVS-NAT更霸道的時(shí)候它直接修改數(shù)據(jù)包的MAC地址。LVS-TUN——基于IP隧道的請(qǐng)求轉(zhuǎn)發(fā)機(jī)制,將調(diào)度器收到的IP數(shù)據(jù)包進(jìn)行封裝,轉(zhuǎn)交給服務(wù)器,然后服務(wù)器返回?cái)?shù)據(jù),通過調(diào)度器實(shí)現(xiàn)負(fù)載均衡。這種方式支持跨網(wǎng)段調(diào)度??偨Y(jié)一下,LVS-DR和LVS-TUN都適合響應(yīng)和請(qǐng)求不對(duì)稱的Web服務(wù)器,如何從它們中做出選擇,取決于你的網(wǎng)絡(luò)部署需要,因?yàn)長(zhǎng)VS-TUN可具有跨地域性,有類似這種需求的,就應(yīng)該選擇LVS-TUN。

終于把服務(wù)器負(fù)載均衡和客戶端負(fù)載均衡講清楚了

客戶端負(fù)載均衡

相比較服務(wù)器負(fù)載均衡而言,客戶端負(fù)載均衡是一個(gè)非常小眾的概念,但是面試在問道負(fù)載均衡相關(guān)知識(shí)的時(shí)候卻會(huì)刻意了解候選人的知識(shí)廣度??蛻舳素?fù)載均衡是在spring-cloud分布式框架組件Ribbon中定義的。我們?cè)谑褂胹pring-cloud分布式框架時(shí),同一個(gè)service大概率同時(shí)啟動(dòng)多個(gè),當(dāng)一個(gè)請(qǐng)求奔過來時(shí),那么這多個(gè)service,Ribbon通過策略決定本次請(qǐng)求使用哪個(gè)service的方式就是客戶端負(fù)載均衡。在spring-cloud分布式框架中客戶端負(fù)載均衡對(duì)開發(fā)者是透明的,添加@LoadBalanced注解就可以了??蛻舳素?fù)載均衡和服務(wù)器負(fù)載均衡的核心差異在服務(wù)列表本身,客戶端負(fù)載均衡服務(wù)列表在通過客戶端維護(hù),服務(wù)器負(fù)載均衡服務(wù)列表由中間服務(wù)單獨(dú)維護(hù)。

通過對(duì)以上知識(shí)的理解,大家能夠?qū)ω?fù)載均衡有的較為全面的認(rèn)識(shí),下來我再簡(jiǎn)單的和面試官聊一聊常見的負(fù)載均衡算法:

  • 隨機(jī),通過隨機(jī)選擇服務(wù)進(jìn)行執(zhí)行,一般這種方式使用較少;
  • 輪訓(xùn),負(fù)載均衡默認(rèn)實(shí)現(xiàn)方式,請(qǐng)求來之后排隊(duì)處理;
  • 加權(quán)輪訓(xùn),通過對(duì)服務(wù)器性能的分型,給高配置,低負(fù)載的服務(wù)器分配更高的權(quán)重,均衡各個(gè)服務(wù)器的壓力;
  • 地址Hash,通過客戶端請(qǐng)求的地址的HASH值取模映射進(jìn)行服務(wù)器調(diào)度。
  • 最小鏈接數(shù);即使請(qǐng)求均衡了,壓力不一定會(huì)均衡,最小連接數(shù)法就是根據(jù)服務(wù)器的情況,比如請(qǐng)求積壓數(shù)等參數(shù),將請(qǐng)求分配到當(dāng)前壓力最小的服務(wù)器上。
  • 其他若干方式。

文章題目:終于把服務(wù)器負(fù)載均衡和客戶端負(fù)載均衡講清楚了
網(wǎng)頁地址:http://www.muchs.cn/news18/102118.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、定制網(wǎng)站、App設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)公司、微信公眾號(hào)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)