欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何理解負(fù)載均衡原理

這篇文章主要介紹“如何理解負(fù)載均衡原理”,在日常操作中,相信很多人在如何理解負(fù)載均衡原理問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何理解負(fù)載均衡原理”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

環(huán)縣網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司

負(fù)載均衡由來(lái)

在業(yè)務(wù)初期,我們一般會(huì)先使用單臺(tái)服務(wù)器對(duì)外提供服務(wù)。隨著業(yè)務(wù)流量越來(lái)越大,單臺(tái)服務(wù)器無(wú)論如何優(yōu)化,無(wú)論采用多好的硬件,總會(huì)有性能天花板,當(dāng)單服務(wù)器的性能無(wú)法滿足業(yè)務(wù)需求時(shí),就需要把多臺(tái)服務(wù)器組成集群系統(tǒng)提高整體的處理性能。

基于上述需求,我們要使用統(tǒng)一的流量入口來(lái)對(duì)外提供服務(wù),本質(zhì)上就是需要一個(gè)流量調(diào)度器,通過(guò)均衡的算法,將用戶大量的請(qǐng)求流量均衡地分發(fā)到集群中不同的服務(wù)器上。這其實(shí)就是我們今天要說(shuō)的負(fù)載均衡

使用負(fù)載均衡可以給我們帶來(lái)的幾個(gè)好處:

  • 提高了系統(tǒng)的整體性能;

  • 提高了系統(tǒng)的擴(kuò)展性;

  • 提高了系統(tǒng)的可用性; 

負(fù)載均衡類型

廣義上的負(fù)載均衡器大概可以分為 3 類,包括:DNS 方式實(shí)現(xiàn)負(fù)載均衡、硬件負(fù)載均衡、軟件負(fù)載均衡。

(一)DNS 實(shí)現(xiàn)負(fù)載均衡

DNS 實(shí)現(xiàn)負(fù)載均衡是最基礎(chǔ)簡(jiǎn)單的方式。一個(gè)域名通過(guò) DNS 解析到多個(gè) IP,每個(gè) IP 對(duì)應(yīng)不同的服務(wù)器實(shí)例,這樣就完成了流量的調(diào)度,雖然沒(méi)有使用常規(guī)的負(fù)載均衡器,但實(shí)現(xiàn)了簡(jiǎn)單的負(fù)載均衡功能。

如何理解負(fù)載均衡原理  

通過(guò) DNS 實(shí)現(xiàn)負(fù)載均衡的方式,最大的優(yōu)點(diǎn)就是實(shí)現(xiàn)簡(jiǎn)單,成本低,無(wú)需自己開(kāi)發(fā)或維護(hù)負(fù)載均衡設(shè)備,不過(guò)存在一些缺點(diǎn):

  • 服務(wù)器故障切換延遲大,服務(wù)器升級(jí)不方便。我們知道 DNS 與用戶之間是層層的緩存,即便是在故障發(fā)生時(shí)及時(shí)通過(guò) DNS 修改或摘除故障服務(wù)器,但中間經(jīng)過(guò)運(yùn)營(yíng)商的 DNS 緩存,且緩存很有可能不遵循 TTL 規(guī)則,導(dǎo)致 DNS 生效時(shí)間變得非常緩慢,有時(shí)候一天后還會(huì)有些許的請(qǐng)求流量。

  • 流量調(diào)度不均衡,粒度太粗。DNS 調(diào)度的均衡性,受地區(qū)運(yùn)營(yíng)商 LocalDNS 返回 IP 列表的策略有關(guān)系,有的運(yùn)營(yíng)商并不會(huì)輪詢返回多個(gè)不同的 IP 地址。另外,某個(gè)運(yùn)營(yíng)商 LocalDNS 背后服務(wù)了多少用戶,這也會(huì)構(gòu)成流量調(diào)度不均的重要因素。

  • 流量分配策略太簡(jiǎn)單,支持的算法太少。DNS 一般只支持 rr 的輪詢方式,流量分配策略比較簡(jiǎn)單,不支持權(quán)重、Hash 等調(diào)度算法。

  • DNS 支持的 IP 列表有限制。我們知道 DNS 使用 UDP 報(bào)文進(jìn)行信息傳遞,每個(gè) UDP 報(bào)文大小受鏈路的 MTU 限制,所以報(bào)文中存儲(chǔ)的 IP 地址數(shù)量也是非常有限的,阿里 DNS 系統(tǒng)針對(duì)同一個(gè)域名支持配置 10 個(gè)不同的 IP 地址。

實(shí)際上生產(chǎn)環(huán)境中很少使用這種方式來(lái)實(shí)現(xiàn)負(fù)載均衡,畢竟缺點(diǎn)很明顯。文中之所以描述 DNS 負(fù)載均衡方式,是為了能夠更清楚地解釋負(fù)載均衡的概念。

像 BAT 體量的公司一般會(huì)利用 DNS 來(lái)實(shí)現(xiàn)地理級(jí)別的全局負(fù)載均衡,實(shí)現(xiàn)就近訪問(wèn),提高訪問(wèn)速度,這種方式一般是入口流量的基礎(chǔ)負(fù)載均衡,下層會(huì)有更專業(yè)的負(fù)載均衡設(shè)備實(shí)現(xiàn)的負(fù)載架構(gòu)。

(二)硬件負(fù)載均衡

硬件負(fù)載均衡是通過(guò)專門的硬件設(shè)備來(lái)實(shí)現(xiàn)負(fù)載均衡功能,是專用的負(fù)載均衡設(shè)備。目前業(yè)界典型的硬件負(fù)載均衡設(shè)備有兩款:F5A10

這類設(shè)備性能強(qiáng)勁、功能強(qiáng)大,但價(jià)格非常昂貴,一般只有土豪公司才會(huì)使用此類設(shè)備,中小公司一般負(fù)擔(dān)不起,業(yè)務(wù)量沒(méi)那么大,用這些設(shè)備也是挺浪費(fèi)的。

硬件負(fù)載均衡的優(yōu)點(diǎn):

  • 功能強(qiáng)大:全面支持各層級(jí)的負(fù)載均衡,支持全面的負(fù)載均衡算法。

  • 性能強(qiáng)大:性能遠(yuǎn)超常見(jiàn)的軟件負(fù)載均衡器。

  • 穩(wěn)定性高:商用硬件負(fù)載均衡,經(jīng)過(guò)了良好的嚴(yán)格測(cè)試,經(jīng)過(guò)大規(guī)模使用,穩(wěn)定性高。

  • 安全防護(hù):還具備防火墻、防 DDoS 攻擊等安全功能,以及支持 SNAT 功能。

硬件負(fù)載均衡的缺點(diǎn)也很明顯:

  • 價(jià)格貴;

  • 擴(kuò)展性差,無(wú)法進(jìn)行擴(kuò)展和定制;

  • 調(diào)試和維護(hù)比較麻煩,需要專業(yè)人員;

(三)軟件負(fù)載均衡

軟件負(fù)載均衡,可以在普通的服務(wù)器上運(yùn)行負(fù)載均衡軟件,實(shí)現(xiàn)負(fù)載均衡功能。目前常見(jiàn)的有 NginxHAproxyLVS。其中的區(qū)別:

  • Nginx:七層負(fù)載均衡,支持 HTTP、E-mail 協(xié)議,同時(shí)也支持 4 層負(fù)載均衡;

  • HAproxy:支持七層規(guī)則的,性能也很不錯(cuò)。OpenStack 默認(rèn)使用的負(fù)載均衡軟件就是 HAproxy;

  • LVS:運(yùn)行在內(nèi)核態(tài),性能是軟件負(fù)載均衡中最高的,嚴(yán)格來(lái)說(shuō)工作在三層,所以更通用一些,適用各種應(yīng)用服務(wù)。

軟件負(fù)載均衡的優(yōu)點(diǎn):

  • 易操作:無(wú)論是部署還是維護(hù)都相對(duì)比較簡(jiǎn)單;

  • 便宜:只需要服務(wù)器的成本,軟件是免費(fèi)的;

  • 靈活:4 層和 7 層負(fù)載均衡可以根據(jù)業(yè)務(wù)特點(diǎn)進(jìn)行選擇,方便進(jìn)行擴(kuò)展和定制功能。

 

負(fù)載均衡LVS

軟件負(fù)載均衡主要包括:Nginx、HAproxy 和 LVS,三款軟件都比較常用。四層負(fù)載均衡基本上都會(huì)使用 LVS,據(jù)了解 BAT 等大廠都是 LVS 重度使用者,就是因?yàn)?LVS 非常出色的性能,能為公司節(jié)省巨大的成本。

LVS,全稱 Linux Virtual Server 是由國(guó)人章文嵩博士發(fā)起的一個(gè)開(kāi)源的項(xiàng)目,在社區(qū)具有很大的熱度,是一個(gè)基于四層、具有強(qiáng)大性能的反向代理服務(wù)器。

它現(xiàn)在是標(biāo)準(zhǔn)內(nèi)核的一部分,它具備可靠性、高性能、可擴(kuò)展性和可操作性的特點(diǎn),從而以低廉的成本實(shí)現(xiàn)最優(yōu)的性能。 

Netfilter基礎(chǔ)原理

LVS 是基于 Linux 內(nèi)核中 netfilter 框架實(shí)現(xiàn)的負(fù)載均衡功能,所以要學(xué)習(xí) LVS 之前必須要先簡(jiǎn)單了解 netfilter 基本工作原理。netfilter 其實(shí)很復(fù)雜,平時(shí)我們說(shuō)的 Linux 防火墻就是 netfilter,不過(guò)我們平時(shí)操作的都是 iptables,iptables 只是用戶空間編寫和傳遞規(guī)則的工具而已,真正工作的是 netfilter。通過(guò)下圖可以簡(jiǎn)單了解下 netfilter 的工作機(jī)制:

如何理解負(fù)載均衡原理 

netfilter 是內(nèi)核態(tài)的 Linux 防火墻機(jī)制,作為一個(gè)通用、抽象的框架,提供了一整套的 hook 函數(shù)管理機(jī)制,提供諸如數(shù)據(jù)包過(guò)濾、網(wǎng)絡(luò)地址轉(zhuǎn)換、基于協(xié)議類型的連接跟蹤的功能。

通俗點(diǎn)講,就是 netfilter 提供一種機(jī)制,可以在數(shù)據(jù)包流經(jīng)過(guò)程中,根據(jù)規(guī)則設(shè)置若干個(gè)關(guān)卡(hook 函數(shù))來(lái)執(zhí)行相關(guān)的操作。netfilter 總共設(shè)置了 5 個(gè)點(diǎn),包括:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

  • PREROUTING :剛剛進(jìn)入網(wǎng)絡(luò)層,還未進(jìn)行路由查找的包,通過(guò)此處

  • INPUT :通過(guò)路由查找,確定發(fā)往本機(jī)的包,通過(guò)此處

  • FORWARD :經(jīng)路由查找后,要轉(zhuǎn)發(fā)的包,在POST_ROUTING之前

  • OUTPUT :從本機(jī)進(jìn)程剛發(fā)出的包,通過(guò)此處

  • POSTROUTING :進(jìn)入網(wǎng)絡(luò)層已經(jīng)經(jīng)過(guò)路由查找,確定轉(zhuǎn)發(fā),將要離開(kāi)本設(shè)備的包,通過(guò)此處

當(dāng)一個(gè)數(shù)據(jù)包進(jìn)入網(wǎng)卡,經(jīng)過(guò)鏈路層之后進(jìn)入網(wǎng)絡(luò)層就會(huì)到達(dá) PREROUTING,接著根據(jù)目標(biāo) IP 地址進(jìn)行路由查找,如果目標(biāo) IP 是本機(jī),數(shù)據(jù)包繼續(xù)傳遞到 INPUT 上,經(jīng)過(guò)協(xié)議棧后根據(jù)端口將數(shù)據(jù)送到相應(yīng)的應(yīng)用程序。

應(yīng)用程序處理請(qǐng)求后將響應(yīng)數(shù)據(jù)包發(fā)送到 OUTPUT 上,最終通過(guò) POSTROUTING 后發(fā)送出網(wǎng)卡。

如果目標(biāo) IP 不是本機(jī),而且服務(wù)器開(kāi)啟了 forward 參數(shù),就會(huì)將數(shù)據(jù)包遞送給 FORWARD 上,最后通過(guò) POSTROUTING 后發(fā)送出網(wǎng)卡。 

LVS基礎(chǔ)原理

LVS 是基于 netfilter 框架,主要工作于 INPUT 鏈上,在 INPUT 上注冊(cè) ip_vs_in HOOK 函數(shù),進(jìn)行 IPVS 主流程,大概原理如圖所示:

如何理解負(fù)載均衡原理  
  • 當(dāng)用戶訪問(wèn) www.sina.com.cn 時(shí),用戶數(shù)據(jù)通過(guò)層層網(wǎng)絡(luò),最后通過(guò)交換機(jī)進(jìn)入 LVS 服務(wù)器網(wǎng)卡,并進(jìn)入內(nèi)核網(wǎng)絡(luò)層。

  • 進(jìn)入 PREROUTING 后經(jīng)過(guò)路由查找,確定訪問(wèn)的目的 VIP 是本機(jī) IP 地址,所以數(shù)據(jù)包進(jìn)入到 INPUT 鏈上

  • LVS 是工作在 INPUT 鏈上,會(huì)根據(jù)訪問(wèn)的 IP:Port 判斷請(qǐng)求是否是 LVS 服務(wù),如果是則進(jìn)行 LVS 主流程,強(qiáng)行修改數(shù)據(jù)包的相關(guān)數(shù)據(jù),并將數(shù)據(jù)包發(fā)往 POSTROUTING 鏈上。

  • POSTROUTING 上收到數(shù)據(jù)包后,根據(jù)目標(biāo) IP 地址(后端真實(shí)服務(wù)器),通過(guò)路由選路,將數(shù)據(jù)包最終發(fā)往后端的服務(wù)器上。

開(kāi)源 LVS 版本有 3 種工作模式,每種模式工作原理都不同,每種模式都有自己的優(yōu)缺點(diǎn)和不同的應(yīng)用場(chǎng)景,包括以下三種模式:

  • DR 模式

  • NAT 模式

  • Tunnel 模式

這里必須要提另外一種模式是 FullNAT,這個(gè)模式在開(kāi)源版本中是模式?jīng)]有的。這個(gè)模式最早起源于百度,后來(lái)又在阿里發(fā)揚(yáng)光大,由阿里團(tuán)隊(duì)開(kāi)源,代碼地址如下:

  • https://github.com/alibaba/lvs

LVS 官網(wǎng)也有相關(guān)下載地址,不過(guò)并沒(méi)有合進(jìn)到內(nèi)核主線版本。

后面會(huì)有專門章節(jié)詳細(xì)介紹 FullNAT 模式。下邊分別就 DR、NAT、Tunnel 模式分別詳細(xì)介紹原理。 

DR 模式實(shí)現(xiàn)原理

LVS 基本原理圖中描述的比較簡(jiǎn)單,表述的是比較通用流程。下邊會(huì)針對(duì) DR 模式的具體實(shí)現(xiàn)原理,詳細(xì)的闡述 DR 模式是如何工作的。

如何理解負(fù)載均衡原理  

其實(shí) DR 是最常用的工作模式,因?yàn)樗膹?qiáng)大的性能。下邊試圖以某個(gè)請(qǐng)求和響應(yīng)數(shù)據(jù)流的過(guò)程來(lái)描述 DR 模式的工作原理

(一)實(shí)現(xiàn)原理過(guò)程

當(dāng)客戶端請(qǐng)求 www.sina.com.cn 主頁(yè),請(qǐng)求數(shù)據(jù)包穿過(guò)網(wǎng)絡(luò)到達(dá) Sina 的 LVS 服務(wù)器網(wǎng)卡:源 IP 是客戶端 IP 地址 CIP,目的 IP 是新浪對(duì)外的服務(wù)器 IP 地址,也就是 VIP;此時(shí)源 MAC 地址是 CMAC,其實(shí)是 LVS 連接的路由器的 MAC 地址(為了容易理解記為 CMAC),目標(biāo) MAC 地址是 VIP 對(duì)應(yīng)的 MAC,記為 VMAC

數(shù)據(jù)包經(jīng)過(guò)鏈路層到達(dá) PREROUTING 位置(剛進(jìn)入網(wǎng)絡(luò)層),查找路由發(fā)現(xiàn)目的 IP 是 LVS 的 VIP,就會(huì)遞送到 INPUT 鏈上,此時(shí)數(shù)據(jù)包 MAC、IP、Port 都沒(méi)有修改。

數(shù)據(jù)包到達(dá) INPUT 鏈,INPUT 是 LVS 主要工作的位置。此時(shí) LVS 會(huì)根據(jù)目的 IP 和 Port 來(lái)確認(rèn)是否是 LVS 定義的服務(wù),如果是定義過(guò)的 VIP 服務(wù),就會(huì)根據(jù)配置信息,從真實(shí)服務(wù)器列表 中選擇一個(gè)作為 RS1,然后以 RS1 作為目標(biāo)查找 Out 方向的路由,確定一下跳信息以及數(shù)據(jù)包要通過(guò)哪個(gè)網(wǎng)卡發(fā)出。最后將數(shù)據(jù)包投遞到 OUTPUT 鏈上。

數(shù)據(jù)包通過(guò) POSTROUTING 鏈后,從網(wǎng)絡(luò)層轉(zhuǎn)到鏈路層,將目的 MAC 地址修改為 RealServer 服務(wù)器 MAC 地址,記為 RMAC;而源 MAC 地址修改為 LVS 與 RS 同網(wǎng)段的 selfIP 對(duì)應(yīng)的 MAC 地址,記為 DMAC。此時(shí),數(shù)據(jù)包通過(guò)交換機(jī)轉(zhuǎn)發(fā)給了 RealServer 服務(wù)器(注:為了簡(jiǎn)單圖中沒(méi)有畫交換機(jī))。

請(qǐng)求數(shù)據(jù)包到達(dá)后端真實(shí)服務(wù)器后,鏈路層檢查目的 MAC 是自己網(wǎng)卡地址。到了網(wǎng)絡(luò)層,查找路由,目的 IP 是 VIP(lo 上配置了 VIP),判定是本地主機(jī)的數(shù)據(jù)包,經(jīng)過(guò)協(xié)議棧拷貝至應(yīng)用程序(比如 nginx 服務(wù)器),nginx 響應(yīng)請(qǐng)求后,產(chǎn)生響應(yīng)數(shù)據(jù)包。

然后以 CIP 查找出方向的路由,確定下一跳信息和發(fā)送網(wǎng)卡設(shè)備信息。此時(shí)數(shù)據(jù)包源、目的 IP 分別是 VIP、CIP,而源 MAC 地址是 RS1 的 RMAC,目的 MAC 是下一跳(路由器)的 MAC 地址,記為 CMAC(為了容易理解,記為 CMAC)。然后數(shù)據(jù)包通過(guò) RS 相連的路由器轉(zhuǎn)發(fā)給真正客戶端,完成了請(qǐng)求響應(yīng)的全過(guò)程。

從整個(gè)過(guò)程可以看出,DR 模式 LVS 邏輯比較簡(jiǎn)單,數(shù)據(jù)包通過(guò)直接路由方式轉(zhuǎn)發(fā)給后端服務(wù)器,而且響應(yīng)數(shù)據(jù)包是由 RS 服務(wù)器直接發(fā)送給客戶端,不經(jīng)過(guò) LVS。

我們知道通常請(qǐng)求數(shù)據(jù)包會(huì)比較小,響應(yīng)報(bào)文較大,經(jīng)過(guò) LVS 的數(shù)據(jù)包基本上都是小包,所以這也是 LVS 的 DR 模式性能強(qiáng)大的主要原因。

(二)優(yōu)缺點(diǎn)和使用場(chǎng)景

  • DR 模式的優(yōu)點(diǎn)

  1. 響應(yīng)數(shù)據(jù)不經(jīng)過(guò) lvs,性能高

  2. 對(duì)數(shù)據(jù)包修改小,信息保存完整(攜帶客戶端源 IP)

  • DR 模式的缺點(diǎn)

  1. lvs 與 rs 必須在同一個(gè)物理網(wǎng)絡(luò)(不支持跨機(jī)房)

  2. 服務(wù)器上必須配置 lo 和其它內(nèi)核參數(shù)

  3. 不支持端口映射

  • DR 模式的使用場(chǎng)景

如果對(duì)性能要求非常高,可以首選 DR 模式,而且可以透?jìng)骺蛻舳嗽?IP 地址。 

NAT 模式實(shí)現(xiàn)原理

lvs 的第 2 種工作模式是 NAT 模式,下圖詳細(xì)介紹了數(shù)據(jù)包從客戶端進(jìn)入 lvs 后轉(zhuǎn)發(fā)到 rs,后經(jīng) rs 再次將響應(yīng)數(shù)據(jù)轉(zhuǎn)發(fā)給 lvs,由 lvs 將數(shù)據(jù)包回復(fù)給客戶端的整個(gè)過(guò)程。

如何理解負(fù)載均衡原理 

(一)實(shí)現(xiàn)原理與過(guò)程

① 用戶請(qǐng)求數(shù)據(jù)包經(jīng)過(guò)層層網(wǎng)絡(luò),到達(dá) lvs 網(wǎng)卡,此時(shí)數(shù)據(jù)包源 IP 是 CIP,目的 IP 是 VIP。

經(jīng)過(guò)網(wǎng)卡進(jìn)入網(wǎng)絡(luò)層 prerouting 位置,根據(jù)目的 IP 查找路由,確認(rèn)是本機(jī) IP,將數(shù)據(jù)包轉(zhuǎn)發(fā)到 INPUT 上,此時(shí)源、目的 IP 都未發(fā)生變化。

③ 到達(dá) lvs 后,通過(guò)目的 IP 和目的 port 查找是否為 IPVS 服務(wù)。若是 IPVS 服務(wù),則會(huì)選擇一個(gè) RS 作為后端服務(wù)器,將數(shù)據(jù)包目的 IP 修改為 RIP,并以 RIP 為目的 IP 查找路由信息,確定下一跳和出口信息,將數(shù)據(jù)包轉(zhuǎn)發(fā)至 output 上。

④ 修改后的數(shù)據(jù)包經(jīng)過(guò) postrouting 和鏈路層處理后,到達(dá) RS 服務(wù)器,此時(shí)的數(shù)據(jù)包源 IP 是 CIP,目的 IP 是 RIP。

⑤ 到達(dá) RS 服務(wù)器的數(shù)據(jù)包經(jīng)過(guò)鏈路層和網(wǎng)絡(luò)層檢查后,被送往用戶空間 nginx 程序。nginx 程序處理完畢,發(fā)送響應(yīng)數(shù)據(jù)包,由于 RS 上默認(rèn)網(wǎng)關(guān)配置為 lvs 設(shè)備 IP,所以 nginx 服務(wù)器會(huì)將數(shù)據(jù)包轉(zhuǎn)發(fā)至下一跳,也就是 lvs 服務(wù)器。此時(shí)數(shù)據(jù)包源 IP 是 RIP,目的 IP 是 CIP。

⑥ lvs 服務(wù)器收到 RS 響應(yīng)數(shù)據(jù)包后,根據(jù)路由查找,發(fā)現(xiàn)目的 IP 不是本機(jī) IP,且 lvs 服務(wù)器開(kāi)啟了轉(zhuǎn)發(fā)模式,所以將數(shù)據(jù)包轉(zhuǎn)發(fā)給 forward 鏈,此時(shí)數(shù)據(jù)包未作修改。

⑦ lvs 收到響應(yīng)數(shù)據(jù)包后,根據(jù)目的 IP 和目的 port 查找服務(wù)和連接表,將源 IP 改為 VIP,通過(guò)路由查找,確定下一跳和出口信息,將數(shù)據(jù)包發(fā)送至網(wǎng)關(guān),經(jīng)過(guò)復(fù)雜的網(wǎng)絡(luò)到達(dá)用戶客戶端,最終完成了一次請(qǐng)求和響應(yīng)的交互。

NAT 模式雙向流量都經(jīng)過(guò) LVS,因此 NAT 模式性能會(huì)存在一定的瓶頸。不過(guò)與其它模式區(qū)別的是,NAT 支持端口映射,且支持 windows 操作系統(tǒng)。

(二)優(yōu)點(diǎn)、缺點(diǎn)與使用場(chǎng)景

  • NAT 模式優(yōu)點(diǎn)

  1. 能夠支持 windows 操作系統(tǒng)

  2. 支持端口映射。如果 rs 端口與 vport 不一致,lvs 除了修改目的 IP,也會(huì)修改 dport 以支持端口映射。

  • NAT 模式缺點(diǎn)

  1. 后端 RS 需要配置網(wǎng)關(guān)

  2. 雙向流量對(duì) lvs 負(fù)載壓力比較大

  • NAT 模式的使用場(chǎng)景

如果你是 windows 系統(tǒng),使用 lvs 的話,則必須選擇 NAT 模式了。 

Tunnel 模式實(shí)現(xiàn)原理

Tunnel 模式在國(guó)內(nèi)使用的比較少,不過(guò)據(jù)說(shuō)騰訊使用了大量的 Tunnel 模式。它也是一種單臂的模式,只有請(qǐng)求數(shù)據(jù)會(huì)經(jīng)過(guò) lvs,響應(yīng)數(shù)據(jù)直接從后端服務(wù)器發(fā)送給客戶端,性能也很強(qiáng)大,同時(shí)支持跨機(jī)房。下邊繼續(xù)看圖分析原理。

如何理解負(fù)載均衡原理  

(一)實(shí)現(xiàn)原理與過(guò)程

① 用戶請(qǐng)求數(shù)據(jù)包經(jīng)過(guò)多層網(wǎng)絡(luò),到達(dá) lvs 網(wǎng)卡,此時(shí)數(shù)據(jù)包源 IP 是 cip,目的 ip 是 vip。

② 經(jīng)過(guò)網(wǎng)卡進(jìn)入網(wǎng)絡(luò)層 prerouting 位置,根據(jù)目的 ip 查找路由,確認(rèn)是本機(jī) ip,將數(shù)據(jù)包轉(zhuǎn)發(fā)到 input 鏈上,到達(dá) lvs,此時(shí)源、目的 ip 都未發(fā)生變化。

③ 到達(dá) lvs 后,通過(guò)目的 ip 和目的 port 查找是否為 IPVS 服務(wù)。若是 IPVS 服務(wù),則會(huì)選擇一個(gè) rs 作為后端服務(wù)器,以 rip 為目的 ip 查找路由信息,確定下一跳、dev 等信息,然后 IP 頭部前邊額外增加了一個(gè) IP 頭(以 dip 為源,rip 為目的 ip),將數(shù)據(jù)包轉(zhuǎn)發(fā)至 output 上。

④ 數(shù)據(jù)包根據(jù)路由信息經(jīng)最終經(jīng)過(guò) lvs 網(wǎng)卡,發(fā)送至路由器網(wǎng)關(guān),通過(guò)網(wǎng)絡(luò)到達(dá)后端服務(wù)器。

⑤ 后端服務(wù)器收到數(shù)據(jù)包后,ipip 模塊將 Tunnel 頭部卸載,正常看到的源 ip 是 cip,目的 ip 是 vip,由于在 tunl0 上配置 vip,路由查找后判定為本機(jī) ip,送往應(yīng)用程序。應(yīng)用程序 nginx 正常響應(yīng)數(shù)據(jù)后以 vip 為源 ip,cip 為目的 ip 數(shù)據(jù)包發(fā)送出網(wǎng)卡,最終到達(dá)客戶端。

Tunnel 模式具備 DR 模式的高性能,又支持跨機(jī)房訪問(wèn),聽(tīng)起來(lái)比較完美。不過(guò)國(guó)內(nèi)運(yùn)營(yíng)商有一定特色性,比如 RS 的響應(yīng)數(shù)據(jù)包的源 IP 為 VIP,VIP 與后端服務(wù)器有可能存在跨運(yùn)營(yíng)商的情況,很有可能被運(yùn)營(yíng)商的策略封掉,Tunnel 在生產(chǎn)環(huán)境確實(shí)沒(méi)有使用過(guò),在國(guó)內(nèi)推行 Tunnel 可能會(huì)有一定的難度吧。

(二)優(yōu)點(diǎn)、缺點(diǎn)與使用場(chǎng)景

  • Tunnel 模式的優(yōu)點(diǎn)

  1. 單臂模式,對(duì) lvs 負(fù)載壓力小

  2. 對(duì)數(shù)據(jù)包修改較小,信息保存完整

  3. 可跨機(jī)房(不過(guò)在國(guó)內(nèi)實(shí)現(xiàn)有難度)

  • Tunnel 模式的缺點(diǎn)

  1. 需要在后端服務(wù)器安裝配置 ipip 模塊

  2. 需要在后端服務(wù)器 tunl0 配置 vip

  3. 隧道頭部的加入可能導(dǎo)致分片,影響服務(wù)器性能

  4. 隧道頭部 IP 地址固定,后端服務(wù)器網(wǎng)卡 hash 可能不均

  5. 不支持端口映射

  • Tunnel 模式的使用場(chǎng)景

理論上,如果對(duì)轉(zhuǎn)發(fā)性能要求較高,且有跨機(jī)房需求,Tunnel 可能是較好的選擇。

到此,關(guān)于“如何理解負(fù)載均衡原理”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

新聞名稱:如何理解負(fù)載均衡原理
鏈接URL:http://chinadenli.net/article18/gogpdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站云服務(wù)器網(wǎng)站維護(hù)Google網(wǎng)站收錄企業(yè)網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)