什么是全鏈路壓測(cè)?全鏈路壓測(cè)怎么做?

發(fā)布時(shí)間:2020-06-11

什么是全鏈路壓測(cè):基于實(shí)際的生產(chǎn)業(yè)務(wù)場(chǎng)景、系統(tǒng)環(huán)境,模擬海量的用戶請(qǐng)求和數(shù)據(jù)對(duì)整個(gè)業(yè)務(wù)鏈進(jìn)行壓力測(cè)試,并持續(xù)調(diào)優(yōu)的過(guò)程。 

全鏈路壓測(cè)解決什么問(wèn)題:針對(duì)業(yè)務(wù)場(chǎng)景越發(fā)復(fù)雜化、海量數(shù)據(jù)沖擊下整個(gè)業(yè)務(wù)系統(tǒng)鏈的可用性、服務(wù)能力的瓶頸,讓技術(shù)更好的服務(wù)業(yè)務(wù),創(chuàng)造更多的價(jià)值。 

全鏈路壓測(cè) 

面對(duì)的問(wèn)題點(diǎn)以及解決方案

1、業(yè)務(wù)模型梳理

首先應(yīng)該明確的是:全鏈路壓測(cè)針對(duì)的是現(xiàn)代越來(lái)越復(fù)雜的業(yè)務(wù)場(chǎng)景和全鏈路的系統(tǒng)依賴。所以首先應(yīng)該將核心業(yè)務(wù)和非核心業(yè)務(wù)進(jìn)行拆分,確認(rèn)流量高峰針對(duì)的是哪些業(yè)務(wù)場(chǎng)景和模塊,

針對(duì)性的進(jìn)行擴(kuò)容準(zhǔn)備,而不是為了解決海量流量沖擊而所有的系統(tǒng)服務(wù)集群擴(kuò)容幾十倍,這樣會(huì)造成不必要的成本投入。 

2、數(shù)據(jù)模型構(gòu)建

數(shù)據(jù)構(gòu)建和準(zhǔn)備,應(yīng)該考慮這幾點(diǎn)問(wèn)題:

①、數(shù)據(jù)的真實(shí)性和可用性

可以從生產(chǎn)環(huán)境完全移植一份當(dāng)量的數(shù)據(jù)包,作為壓測(cè)的基礎(chǔ)數(shù)據(jù),然后基于基礎(chǔ)數(shù)據(jù),通過(guò)分析歷史數(shù)據(jù)增長(zhǎng)趨勢(shì),預(yù)估當(dāng)前可能的數(shù)據(jù)量;

②、數(shù)據(jù)脫敏

基于生產(chǎn)環(huán)境的全鏈路壓測(cè),必須考慮的一點(diǎn)是不能產(chǎn)生臟數(shù)據(jù),以免對(duì)生產(chǎn)造成影響,影響用戶體驗(yàn)等,因此在數(shù)據(jù)準(zhǔn)備時(shí)需要進(jìn)行數(shù)據(jù)脫敏;

③、數(shù)據(jù)隔離

同樣,為了避免造成臟數(shù)據(jù)寫入,可以考慮通過(guò)壓測(cè)數(shù)據(jù)隔離處理,落入影子庫(kù),mock對(duì)象等手段,來(lái)防止數(shù)據(jù)污染;

3、壓測(cè)工具選型

全鏈路壓測(cè)應(yīng)對(duì)的都是海量的用戶請(qǐng)求沖擊,可以使用分布式壓測(cè)的手段來(lái)進(jìn)行用戶請(qǐng)求模擬,目前有很多的開(kāi)源工具可以提供分布式壓測(cè)的方式,比如jmeter、Ngrinder、locust等。

也可以考慮澤眾出品的性能測(cè)試工具:PerformanceRunner。

考慮到壓測(cè)量較大的情況下回傳測(cè)試結(jié)果會(huì)對(duì)agent本身造成一定資源占用,可以考慮異步上傳,甚至事務(wù)補(bǔ)償機(jī)制?!?nbsp;

4、壓測(cè)環(huán)境搭建

全鏈路壓測(cè)都是基于生產(chǎn)環(huán)境,解決了業(yè)務(wù)模型和數(shù)據(jù)以及壓測(cè)工具選型開(kāi)發(fā),就要考慮系統(tǒng)擴(kuò)容和風(fēng)險(xiǎn)規(guī)避了,比如壓測(cè)不能影響實(shí)際的生產(chǎn)業(yè)務(wù)運(yùn)行,還有資源申請(qǐng)等。

重新搭建一套完全匹配生產(chǎn)環(huán)境的壓測(cè)環(huán)境,成本太高,且需求頻次較低,投入成本太大?!?nbsp;

5、系統(tǒng)容量規(guī)劃

前面提到了業(yè)務(wù)拆分和流量預(yù)估,在系統(tǒng)容量規(guī)劃階段,首先應(yīng)該對(duì)單個(gè)接口單個(gè)服務(wù)進(jìn)行基準(zhǔn)測(cè)試,調(diào)整配置參數(shù),得到一個(gè)基準(zhǔn)線,然后進(jìn)行分布式集群部署,通過(guò)nginx負(fù)載均衡。

至于擴(kuò)容,要考慮到服務(wù)擴(kuò)容和DB資源擴(kuò)容,以及服務(wù)擴(kuò)容帶來(lái)的遞減效應(yīng)。

至于大流量沖擊情況下,可以考慮隊(duì)列等待、容器鎖、長(zhǎng)連接回調(diào)、事務(wù)降級(jí)等方式來(lái)解決。 

6、測(cè)試集群部署

能做全鏈路壓測(cè)的業(yè)務(wù)系統(tǒng),基本都是分布式系統(tǒng)架構(gòu),服務(wù)集群部署和負(fù)載均衡,就是需要實(shí)現(xiàn)和考慮的技術(shù)點(diǎn)。

需要解決的問(wèn)題有:

①、服務(wù)間通信問(wèn)題

一般通信方式有兩種:同步和異步。

同步調(diào)用一致性強(qiáng),但是要考慮性能和調(diào)用失敗的事務(wù)處理。

異步調(diào)用的話,可以降低服務(wù)間的耦合,提升性能體驗(yàn),但是一致性是需要解決的(分布式架構(gòu)有個(gè)CAP理論,感興趣的可以查詢相關(guān)資料看看)。

②、負(fù)載均衡問(wèn)題

需要將大流量沖擊均勻的分發(fā)給集群上的每臺(tái)機(jī)器,目前比較優(yōu)秀的負(fù)載均衡服務(wù)器是nginx,但nginx的部署貌似也存在一些問(wèn)題,我們公司之前就遇到過(guò)訂單重復(fù)問(wèn)題。

③、容災(zāi)問(wèn)題

需要確保的一點(diǎn)是:當(dāng)服務(wù)中的某臺(tái)或者某部分服務(wù)宕機(jī),可以及時(shí)的進(jìn)行服務(wù)轉(zhuǎn)發(fā),而不至于連鎖反應(yīng)下整個(gè)系統(tǒng)鏈路的服務(wù)掛掉?!?nbsp;

7、數(shù)據(jù)收集監(jiān)控

壓測(cè)數(shù)據(jù)收集,需要由agent機(jī)回送給Contorller機(jī)器,但數(shù)據(jù)量過(guò)大會(huì)占用一定的資源,可以考慮異步實(shí)現(xiàn)測(cè)試結(jié)果回送。

更多性能測(cè)試文章推薦:

WEB性能測(cè)試怎么做?常用的WEB性能測(cè)試工具有哪些?

性能測(cè)試工具PerformanceRunner與LoadRunner有什么區(qū)別?

性能測(cè)試工具PR腳本和錄制失敗原因有哪些?

本文內(nèi)容不用于商業(yè)目的,如涉及知識(shí)產(chǎn)權(quán)問(wèn)題,請(qǐng)權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號(hào) 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測(cè)試工具和測(cè)試服務(wù)

微信客服
問(wèn)題
反饋
產(chǎn)品
畫冊(cè)

掃描二維碼下載澤眾軟件企業(yè)宣傳冊(cè)

產(chǎn)品畫冊(cè)
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報(bào)價(jià))。

您的信息已成功提交!

我們的客服人員稍后會(huì)與您聯(lián)系