新聞中心
G行全棧云環(huán)境負(fù)載均衡服務(wù)能力實(shí)踐—負(fù)載均衡服務(wù)關(guān)鍵技術(shù)介紹
作者:陳立 2022-12-20 08:01:20
云計(jì)算
云原生 全棧云負(fù)載均衡服務(wù),一方面可以替代傳統(tǒng)硬件負(fù)載均衡設(shè)備提供負(fù)載能力;另一方面,云上負(fù)載均衡設(shè)備已云化,具備敏捷交付和彈性擴(kuò)容能力,且后端負(fù)載節(jié)點(diǎn)既可以是虛擬機(jī)設(shè)備,也可以是容器節(jié)點(diǎn),適用性廣,同時(shí)也擁有滿足信創(chuàng)要求的優(yōu)勢(shì)。

10年積累的網(wǎng)站建設(shè)、做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有臺(tái)江免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
?隨著云計(jì)算和云原生技術(shù)的發(fā)展,各大云計(jì)算廠商都在布局云計(jì)算數(shù)據(jù)中心,為用戶提供更加安全高效的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源以及應(yīng)用服務(wù)資源。一些大型企業(yè)尤其是金融業(yè)需要建立自己的私有數(shù)據(jù)中心,保證數(shù)據(jù)的安全可控。目前各數(shù)據(jù)中心都在由傳統(tǒng)數(shù)據(jù)中心向云計(jì)算數(shù)據(jù)中心轉(zhuǎn)型,以滿足新興技術(shù)的發(fā)展和業(yè)務(wù)快速迭代的需求。G行作為金融行業(yè)數(shù)字化轉(zhuǎn)型的探索者與實(shí)踐者,提出“123+N”的數(shù)字化特色發(fā)展體系,即一個(gè)智慧大腦,兩大技術(shù)平臺(tái)——云計(jì)算和大數(shù)據(jù),三項(xiàng)服務(wù)能力——移動(dòng)化、開放化、生態(tài)化服務(wù)能力。根據(jù)數(shù)字化發(fā)展戰(zhàn)略要求,傳統(tǒng)數(shù)據(jù)中心的應(yīng)用系統(tǒng)要逐步遷移到云平臺(tái),實(shí)現(xiàn)服務(wù)云化,滿足業(yè)務(wù)快速迭代的需要,同時(shí)云平臺(tái)可提供快速便捷的資源交付和資源擴(kuò)容能力,提升資源利用率,達(dá)到降本增效的目標(biāo)。
針對(duì)應(yīng)用上云,G行制定了相關(guān)的上云策略,強(qiáng)調(diào)優(yōu)先容器化部署,對(duì)于無法容器化改造的產(chǎn)品組件可通過虛擬機(jī)或裸金屬方式上云,以多種部署形式滿足應(yīng)用上云要求。針對(duì)傳統(tǒng)環(huán)境和云上應(yīng)用,所使用業(yè)務(wù)流量負(fù)載方式是不同的。傳統(tǒng)環(huán)境主要使用硬件F5負(fù)載均衡,優(yōu)點(diǎn)是性能好、功能強(qiáng)大,缺點(diǎn)是成本高、擴(kuò)展性差、不符合信創(chuàng)要求。云環(huán)境使用云平臺(tái)提供的服務(wù)組件彈性負(fù)載均衡服務(wù),優(yōu)點(diǎn)是成本低、擴(kuò)展性好、符合信創(chuàng)要求,缺點(diǎn)是相比硬件負(fù)載均衡性能略有下降。本文主要對(duì)云上負(fù)載均衡的實(shí)踐進(jìn)行總結(jié)介紹。
一、負(fù)載均衡定義
負(fù)載均衡技術(shù)是通過硬件或者軟件定義的方法,來擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。其主要作用如下。
1、高并發(fā)性
負(fù)載均衡通過負(fù)載算法將應(yīng)用請(qǐng)求盡力均勻的分配到后端負(fù)載各節(jié)點(diǎn),以此提高應(yīng)用集群的并發(fā)處理能力。
2、高可用性
負(fù)載均衡可以通過健康檢查機(jī)制監(jiān)控后端負(fù)載節(jié)點(diǎn),當(dāng)負(fù)載節(jié)點(diǎn)不可用時(shí),自動(dòng)隔離故障節(jié)點(diǎn),并將請(qǐng)求分發(fā)給可用的負(fù)載節(jié)點(diǎn),使得應(yīng)用集群具備高可用的特性。
3、彈性伸縮性
通過動(dòng)態(tài)添加或減少負(fù)載節(jié)點(diǎn)數(shù)量,然后由負(fù)載均衡進(jìn)行分發(fā)控制,使得應(yīng)用集群具備彈性及伸縮性。
二、負(fù)載均衡算法
負(fù)載均衡的功能是流量分發(fā),即將接受的流量請(qǐng)求按照一定的算法規(guī)則轉(zhuǎn)發(fā)給后端的負(fù)載節(jié)點(diǎn),實(shí)現(xiàn)高并發(fā)的同時(shí),能夠最大限度地利用后端負(fù)載服務(wù)器的資源。常用的主要有以下幾種算法。
|
負(fù)載均衡算法 |
描述 |
使用場(chǎng)景 |
|
rr輪詢算法 |
rr 算法就是將外部請(qǐng)求按順序輪流分配到集群中的負(fù)載節(jié)點(diǎn)上,但不考慮每臺(tái)負(fù)載節(jié)點(diǎn)的負(fù)載情況。 |
該算法適合后端負(fù)載節(jié)點(diǎn)配置一致,算力均等的場(chǎng)景。 |
|
wrr加權(quán) 輪詢算法 |
wrr 算法在rr 算法的基礎(chǔ)上會(huì)考察每臺(tái)負(fù)載節(jié)點(diǎn)的負(fù)載情況,并嘗試讓負(fù)載較輕的節(jié)點(diǎn)承擔(dān)更多請(qǐng)求。 |
該算法適合后端負(fù)載節(jié)點(diǎn)算力配置不均等的場(chǎng)景。 |
|
lc最少連接數(shù)算法 |
lc算法可以讓負(fù)載均衡設(shè)備嘗試把新的請(qǐng)求交給當(dāng)前連接數(shù)最少的負(fù)載節(jié)點(diǎn) ,直到此負(fù)載節(jié)點(diǎn)連接數(shù)不再屬于最少標(biāo)準(zhǔn)。 |
常用于長(zhǎng)連接服務(wù)場(chǎng)景。 |
|
源 IP 算法 |
將請(qǐng)求的源 IP 地址進(jìn)行 Hash 運(yùn)算,得到一個(gè)具體的數(shù)值,同時(shí)對(duì)后端服務(wù)器進(jìn)行編號(hào),按照運(yùn)算結(jié)果將請(qǐng)求分發(fā)到對(duì)應(yīng)編號(hào)的服務(wù)器上。這可以使得對(duì)不同源 IP 的訪問進(jìn)行負(fù)載分發(fā),同時(shí)使得同一個(gè)客戶端 IP 的請(qǐng)求始終被派發(fā)至某特定的服務(wù)器。 |
該方式適合負(fù)載均衡無 cookie 功能的TCP 協(xié)議。 |
三、負(fù)載均衡健康檢查
負(fù)載均衡通過健康檢查來判斷后端負(fù)載實(shí)例的業(yè)務(wù)可用性,當(dāng)后端負(fù)載實(shí)例的服務(wù)異常時(shí),負(fù)載均衡根據(jù)健康狀態(tài)判斷自動(dòng)隔離異常節(jié)點(diǎn),不進(jìn)行流量分發(fā),待后端負(fù)載節(jié)點(diǎn)服務(wù)恢復(fù)后,根據(jù)健康狀態(tài)判斷自動(dòng)上線該節(jié)點(diǎn),從而提高前端業(yè)務(wù)整體可用性。健康檢查常用的兩種檢查機(jī)制如下。
1、七層HTTP監(jiān)聽健康檢查機(jī)制
針對(duì)七層HTTP監(jiān)聽,健康檢查通過HTTP HEAD探測(cè)來獲取狀態(tài)信息。
圖1 HTTP監(jiān)聽健康檢查機(jī)制
負(fù)載均衡服務(wù)器根據(jù)監(jiān)聽的健康檢查配置,向后端負(fù)載節(jié)點(diǎn)發(fā)送“IP+健康檢查端口+檢查路徑”的HTTP HEAD請(qǐng)求。后端負(fù)載收到請(qǐng)求后,根據(jù)相應(yīng)服務(wù)的運(yùn)行情況,返回HTTP狀態(tài)碼。
如果在響應(yīng)超時(shí)時(shí)間之內(nèi),負(fù)載均衡服務(wù)器沒有收到后端負(fù)載節(jié)點(diǎn)返回的信息,則認(rèn)為服務(wù)無響應(yīng),判定健康檢查失??;如果負(fù)載均衡服務(wù)器成功接收到后端負(fù)載節(jié)點(diǎn)返回的狀態(tài)碼,且狀態(tài)碼與配置的狀態(tài)碼一致,則判定健康檢查成功,反之則判定健康檢查失敗。
2、TCP監(jiān)聽健康檢查機(jī)制
圖2 TCP監(jiān)聽監(jiān)控檢查機(jī)制
針對(duì)四層TCP監(jiān)聽,負(fù)載均衡服務(wù)器通過TCP的3次握手機(jī)制對(duì)后端負(fù)載節(jié)點(diǎn)進(jìn)行TCP探測(cè),根據(jù)監(jiān)聽的健康檢查配置,向后端負(fù)載節(jié)點(diǎn)發(fā)送“IP+健康檢查端口”的TCP SYN數(shù)據(jù)包。后端負(fù)載節(jié)點(diǎn)收到請(qǐng)求后,如果相應(yīng)端口正在正常監(jiān)聽,則會(huì)返回SYN+ACK數(shù)據(jù)包。
如果在響應(yīng)超時(shí)時(shí)間之內(nèi),負(fù)載均衡服務(wù)器接收到后端負(fù)載節(jié)點(diǎn)返回的數(shù)據(jù)包,則發(fā)送ACK數(shù)據(jù)包判定健康檢查成功,建立TCP連接;如果沒有收到后端負(fù)載節(jié)點(diǎn)返回的數(shù)據(jù)包,則認(rèn)為服務(wù)無響應(yīng),判定健康檢查失敗并向后端負(fù)載節(jié)點(diǎn)發(fā)送RST數(shù)據(jù)包中斷TCP連接。
四、健康檢查周期
健康檢查機(jī)制有效提高了業(yè)務(wù)服務(wù)的可用性。但是頻繁的健康檢查一方面會(huì)增加后端負(fù)載節(jié)點(diǎn)的負(fù)載壓力,另一方面健康檢查失敗引起的頻繁切換對(duì)系統(tǒng)可用性也有一定的沖擊。因此需要對(duì)健康檢查周期進(jìn)行設(shè)置,避免頻繁檢查和頻繁切換。健康檢查周期由下幾個(gè)因素決定。
1、檢查間隔
每隔多久進(jìn)行一次健康檢查。
2、超時(shí)時(shí)間
等待健康檢查請(qǐng)求返回的時(shí)間,返回超時(shí)將會(huì)被判定為一次檢查失敗。
3、不健康閾值
健康檢查連續(xù)失敗的次數(shù),達(dá)到閾值后端服務(wù)將被屏蔽。
4、健康閾值
健康檢查連續(xù)成功的次數(shù),達(dá)到閾值后端服務(wù)將被恢復(fù)。
健康檢查周期的計(jì)算方法如下:
健康檢查失敗周期=超時(shí)時(shí)間×不健康閾值+檢查間隔×(不健康閾值-1)
健康檢查成功周期=(健康檢查成功響應(yīng)時(shí)間x健康閾值)+檢查間隔x(健康閾值-1)
舉例:假設(shè)健康檢查間隔為2s,超時(shí)時(shí)間為5s,不健康閾值和健康閾值都為3。那么從從健康檢查狀態(tài)成功到到失敗需要19s(如圖3所示)。健康檢查失敗到狀態(tài)檢查成功耗時(shí)最短為7s(如圖3,健康檢查OK時(shí)間假設(shè)為1s)。其中健康檢查成功響應(yīng)時(shí)間是一次健康檢查請(qǐng)求從發(fā)出到響應(yīng)的時(shí)間。當(dāng)采用TCP方式健康檢查時(shí),由于僅探測(cè)端口是否存活,因此該時(shí)間非常短,幾乎可以忽略不計(jì)。當(dāng)采用HTTP方式健康檢查時(shí),該時(shí)間取決于應(yīng)用服務(wù)器的性能、負(fù)載以及相應(yīng)服務(wù)接口的響應(yīng)時(shí)間,但通常都在秒級(jí)以內(nèi)。
圖3 健康檢查周期計(jì)算方法
G行全棧云應(yīng)用上云分為虛擬機(jī)上云和容器化上云。針對(duì)不同的上云方式,負(fù)載均衡均可提供流量負(fù)載均衡服務(wù)。應(yīng)用通過負(fù)載均衡ELB將負(fù)載流量轉(zhuǎn)發(fā)給后端的多個(gè)虛擬機(jī)或者容器應(yīng)用,通過TCP和HTTP兩種健康檢查方式對(duì)后端負(fù)載的存活狀態(tài)進(jìn)行探查。TCP健康檢查只探測(cè)對(duì)應(yīng)的應(yīng)用端口是否存在,配置簡(jiǎn)單,響應(yīng)較快。HTTP檢查可以根據(jù)提供的端口和URL路徑準(zhǔn)確判斷應(yīng)用的健康狀態(tài),檢查準(zhǔn)確性高,覆蓋面更全,具體使用方式根據(jù)業(yè)務(wù)場(chǎng)景進(jìn)行配置。針對(duì)流量轉(zhuǎn)發(fā)算法,一般負(fù)載均衡后端的負(fù)載節(jié)點(diǎn)配置相同,可采用輪詢算法進(jìn)行負(fù)載流量轉(zhuǎn)發(fā)。
圖4 G行虛擬機(jī)上云與容器化上云的負(fù)載均衡示意
五、總結(jié)
全棧云負(fù)載均衡服務(wù),一方面可以替代傳統(tǒng)硬件負(fù)載均衡設(shè)備提供負(fù)載能力;另一方面,云上負(fù)載均衡設(shè)備已云化,具備敏捷交付和彈性擴(kuò)容能力,且后端負(fù)載節(jié)點(diǎn)既可以是虛擬機(jī)設(shè)備,也可以是容器節(jié)點(diǎn),適用性廣,同時(shí)也擁有滿足信創(chuàng)要求的優(yōu)勢(shì)。在全行應(yīng)用系統(tǒng)上云中,它既可以作為負(fù)載均衡架構(gòu)應(yīng)用組件的負(fù)載能力組件,又作為容器應(yīng)用的統(tǒng)一入口地址,統(tǒng)一對(duì)外暴露固定地址,在云環(huán)境中將發(fā)揮越來越大的作用。
本文標(biāo)題:G行全棧云環(huán)境負(fù)載均衡服務(wù)能力實(shí)踐—負(fù)載均衡服務(wù)關(guān)鍵技術(shù)介紹
網(wǎng)頁網(wǎng)址:http://fisionsoft.com.cn/article/ccdijhp.html


咨詢
建站咨詢
