十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
一、負(fù)載均衡算法原理與實(shí)戰(zhàn)
負(fù)載均衡算法(load balancing algorithm),定義了幾種基本的流量分發(fā)方式,在Istio中共有4種標(biāo)準(zhǔn)負(fù)載均衡算法。
?Round_Robin: 輪詢算法,顧名思義請求將會(huì)依次發(fā)給每一個(gè)實(shí)例,來共同分擔(dān)所有的請求。
?Random: 隨機(jī)算法,將所有的請求隨機(jī)分發(fā)給健康的實(shí)例
?Least_Conn: 最小連接數(shù),在所有健康的實(shí)例中任選兩個(gè),將請求發(fā)給連接數(shù)較小的那一個(gè)實(shí)例。
接下來,我們將根據(jù)以上幾個(gè)算法結(jié)合APM(應(yīng)用性能管理)的監(jiān)控拓?fù)鋱D來實(shí)戰(zhàn)下。
·實(shí)戰(zhàn)環(huán)境·
華為云開啟了Istio服務(wù)網(wǎng)格的CCE集群
官方最佳時(shí)間Bookinfo應(yīng)用,并且給Reviews配置了五個(gè)實(shí)例
開通APM測試服務(wù)(免費(fèi))
我們知道如果用戶不進(jìn)行任何配置,負(fù)載均衡算法默認(rèn)是輪詢算法,所以我們現(xiàn)將負(fù)載均衡算法設(shè)為隨機(jī)(Random)。
步驟 1
在云容器引擎界面點(diǎn)擊應(yīng)用管理,選擇流量治理。
步驟 2
右側(cè)出現(xiàn)拓?fù)鋱D,在上面的選項(xiàng)欄中選擇集群,命名空間,應(yīng)用。然后點(diǎn)擊我們想配置的組件,這里是 reviews,右側(cè)則會(huì)出現(xiàn)流量治理的界面。
步驟 3
在負(fù)載均衡算法中,由Round_Robin 改為random。
步驟 4
在左側(cè)導(dǎo)航欄中選擇流量治理下面的流量監(jiān)控,再選擇相應(yīng)的集群,命名空間,應(yīng)用。多訪問幾次,或者后臺(tái)寫腳本一直curl productpage,可以從拓?fù)鋱D中觀察數(shù)據(jù)。
步驟 5
當(dāng)有流量時(shí),鼠標(biāo)右鍵點(diǎn)擊reviews組件,選擇展開選項(xiàng)這時(shí)我們可以看到所有實(shí)例的被分發(fā)情況。
實(shí)例編號 1 2 3 4 5
訪問次數(shù) 62 38 39 42 52
其余負(fù)載均衡算法基本一樣,我們在步驟上不做贅述,直接展示結(jié)果。
輪詢算法:
實(shí)例編號 1 2 3 4 5
訪問次數(shù) 47 47 48 46 47
二、會(huì)話保持原理與實(shí)戰(zhàn)
會(huì)話保持(Session Affinity)是通過設(shè)定的某個(gè)指標(biāo)來計(jì)算,將哈希值相同的請求分發(fā)至某個(gè)固定的實(shí)例來處理。現(xiàn)在支持基于HTTP頭部設(shè)定指標(biāo)和Cookie鍵值設(shè)定指標(biāo)。
我們當(dāng)前還在輪詢算法中,所以所有請求會(huì)均勻的分配給所有實(shí)例,設(shè)置會(huì)話保持基于HTTP請求頭部,并且設(shè)為Cookie。我們后臺(tái)curl的請求cookie設(shè)為了一個(gè)固定值,理論上來講所有的請求都會(huì)分發(fā)至同一個(gè)pod。
我們依然采用流量監(jiān)控,展開reviews組件來觀察分發(fā)情況。
所有的請求都分發(fā)至了第二個(gè)實(shí)例,因?yàn)閏ookie一致所以保持了這個(gè)會(huì)話鏈接。
三、故障注入原理與實(shí)戰(zhàn)
故障注入(Fault Injection)為開發(fā)和測試人員主動(dòng)向系統(tǒng)中引入故障,來觀察系統(tǒng)在非正常狀態(tài)下的行為,是一種可靠性,穩(wěn)定性的驗(yàn)證手段。Istio也支持了非侵入式的注入故障,分為時(shí)延故障和中斷故障。
故障注入的步驟大致相同在流量治理頁面的下方,選擇時(shí)延故障,并且輸入觸發(fā)百分比和延時(shí)時(shí)間。然后再打開productpage 手動(dòng)刷新幾次,能明顯感覺到延遲有了變化,當(dāng)然也可以打開F12調(diào)試界面,觀察網(wǎng)絡(luò)請求狀況,不難發(fā)現(xiàn)productpage請求耗時(shí)都在2秒上下。
這時(shí)候我們打開流量監(jiān)控界面觀察下發(fā)現(xiàn)productpage與reviews受到了明顯的影響。紅色表示請求狀態(tài)極差,虛線表示是由時(shí)延造成的。
接下來我們來測試并且使用中斷故障,我們對details配置中斷故障,中斷返回碼設(shè)為501。
配置完后,我們再去手動(dòng)訪問幾次productpage來觀察下結(jié)果。
發(fā)現(xiàn)現(xiàn)在的右側(cè)details已經(jīng)報(bào)了error
我們回到流量監(jiān)控圖,可以看到組件之間的訪問情況。在給ratings配置了中斷故障后,原本調(diào)用ratings組件的reviews組件,已經(jīng)無法和ratings通信了。
本文以華為云istio服務(wù)結(jié)合APM服務(wù)為大家演示了流量治理中的主要功能。希望大家在今后的開發(fā)和測試中可以利用istio靈活的非侵入的治理功能提高開發(fā)和測試的效率。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。