全鏈路壓測

本文轉(zhuǎn)載至老_張

本文原文

之前有和認識的同行聊過他們?nèi)溌穳簻y的一些技術(shù)實現(xiàn)方案傻工,自己也看了很多相關的資料霞溪,這篇博客,說說自己對全鏈路壓測的理解精钮,以及整理的一些知識點威鹿。。轨香。

PS:主要羅列的是問題點忽你,以及對應的一些解決方案,僅供參考臂容。科雳。。

相關鏈接:

阿里全鏈路壓測

有贊全鏈路壓測

京東全鏈路壓測

餓了么全鏈路壓測

滴滴全鏈路壓測解決之道

美團全鏈路壓測自動化實踐

邏輯思維在全鏈路壓測方面的實踐

一脓杉、什么是全鏈路壓測

基于實際的生產(chǎn)業(yè)務場景糟秘、系統(tǒng)環(huán)境,模擬海量的用戶請求和數(shù)據(jù)對整個業(yè)務鏈進行壓力測試球散,并持續(xù)調(diào)優(yōu)的過程尿赚。

二、全鏈路壓測解決什么問題

針對業(yè)務場景越發(fā)復雜化蕉堰、海量數(shù)據(jù)沖擊下整個業(yè)務系統(tǒng)鏈的可用性凌净、服務能力的瓶頸,讓技術(shù)更好的服務業(yè)務屋讶,創(chuàng)造更多的價值冰寻。

三、面對的問題點以及解決方案

1皿渗、業(yè)務模型梳理

首先應該明確的是:全鏈路壓測針對的是現(xiàn)代越來越復雜的業(yè)務場景和全鏈路的系統(tǒng)依賴斩芭。所以首先應該將核心業(yè)務和非核心業(yè)務進行拆分轻腺,確認流量高峰針對的是哪些業(yè)務場景和模塊,

針對性的進行擴容準備划乖,而不是為了解決海量流量沖擊而所有的系統(tǒng)服務集群擴容幾十倍贬养,這樣會造成不必要的成本投入。

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

數(shù)據(jù)構(gòu)建和準備煤蚌,應該考慮這幾點問題:

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

可以從生產(chǎn)環(huán)境完全移植一份當量的數(shù)據(jù)包细卧,作為壓測的基礎數(shù)據(jù),然后基于基礎數(shù)據(jù)筒占,通過分析歷史數(shù)據(jù)增長趨勢贪庙,預估當前可能的數(shù)據(jù)量;

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

基于生產(chǎn)環(huán)境的全鏈路壓測止邮,必須考慮的一點是不能產(chǎn)生臟數(shù)據(jù),以免對生產(chǎn)造成影響奏窑,影響用戶體驗等导披,因此在數(shù)據(jù)準備時需要進行數(shù)據(jù)脫敏;

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

同樣撩匕,為了避免造成臟數(shù)據(jù)寫入,可以考慮通過壓測數(shù)據(jù)隔離處理墨叛,落入影子庫止毕,mock 對象等手段,來防止數(shù)據(jù)污染漠趁;

3扁凛、壓測工具選型

全鏈路壓測應對的都是海量的用戶請求沖擊,可以使用分布式壓測的手段來進行用戶請求模擬闯传,目前有很多的開源工具可以提供分布式壓測的方式谨朝,比如 jmeterNgrinder甥绿、locust 等字币。

可以基于這些壓測工具進行二次開發(fā),由 Contorller 機器負責請求分發(fā)妹窖,agent 機器進行壓測纬朝,然后測試結(jié)果上傳 Contorller 機器。

考慮到壓測量較大的情況下回傳測試結(jié)果會對 agent 本身造成一定資源占用骄呼,可以考慮異步上傳共苛,甚至事務補償機制判没。

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

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

重新搭建一套完全匹配生產(chǎn)環(huán)境的壓測環(huán)境,成本太高堂竟,且需求頻次較低魂毁,投入成本太大。

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

前面提到了業(yè)務拆分和流量預估席楚,在系統(tǒng)容量規(guī)劃階段,首先應該對單個接口單個服務進行基準測試税稼,調(diào)整配置參數(shù)烦秩,得到一個基準線,然后進行分布式集群部署郎仆,通過 nginx 負載均衡只祠。

至于擴容,要考慮到服務擴容和 DB 資源擴容扰肌,以及服務擴容帶來的遞減效應抛寝。

至于大流量沖擊情況下,可以考慮隊列等待狡耻、容器鎖墩剖、長連接回調(diào)、事務降級等方式來解決夷狰。

6岭皂、測試集群部署

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

需要解決的問題有:

①进倍、服務間通信問題

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

同步調(diào)用:

REST(JAX-RS,Spring Boot)

RPC(Thrift, Dubbo)

異步調(diào)用:

(Kafka, Notify, MetaQ)

同步調(diào)用一致性強猾昆,但是要考慮性能和調(diào)用失敗的事務處理陶因。

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

②烘苹、負載均衡問題

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

③、容災問題

需要確保的一點是:當服務中的某臺或者某部分服務宕機廊鸥,可以及時的進行服務轉(zhuǎn)發(fā)望浩,而不至于連鎖反應下整個系統(tǒng)鏈路的服務掛掉(可以參考我之前的博客:容災測試)。

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

壓測數(shù)據(jù)收集曾雕,需要由 agent 機回送給 Contorller 機器奴烙,但數(shù)據(jù)量過大會占用一定的資源助被,可以考慮異步實現(xiàn)測試結(jié)果回送。

至于監(jiān)控切诀,現(xiàn)在有很多優(yōu)秀的專業(yè)監(jiān)控工具揩环,比如 NmonZabbix幅虑,全鏈路監(jiān)控工具 Zipkin丰滑、PinPoint 以及攜程開源的全鏈路監(jiān)控工具 CAT

或者可以針對需要倒庵,二次開發(fā)JVM自帶的一些監(jiān)控工具褒墨,做到實時全方位監(jiān)控。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末擎宝,一起剝皮案震驚了整個濱河市郁妈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绍申,老刑警劉巖噩咪,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異极阅,居然都是意外死亡胃碾,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門筋搏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來仆百,“玉大人,你說我怎么就攤上這事奔脐《碇埽” “怎么了芬为?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵赖捌,是天一觀的道長。 經(jīng)常有香客問我,道長苔巨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任冒嫡,我火速辦了婚禮释液,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘艰亮。我一直安慰自己闭翩,他們只是感情好,可當我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布迄埃。 她就那樣靜靜地躺著疗韵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侄非。 梳的紋絲不亂的頭發(fā)上蕉汪,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音逞怨,去河邊找鬼者疤。 笑死,一個胖子當著我的面吹牛叠赦,可吹牛的內(nèi)容都是我干的驹马。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼除秀,長吁一口氣:“原來是場噩夢啊……” “哼糯累!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起册踩,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泳姐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后棍好,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體仗岸,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年借笙,在試婚紗的時候發(fā)現(xiàn)自己被綠了扒怖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡业稼,死狀恐怖盗痒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤俯邓,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布骡楼,位于F島的核電站,受9級特大地震影響稽鞭,放射性物質(zhì)發(fā)生泄漏鸟整。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一朦蕴、第九天 我趴在偏房一處隱蔽的房頂上張望篮条。 院中可真熱鬧,春花似錦吩抓、人聲如沸涉茧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伴栓。三九已至,卻和暖如春雨饺,著一層夾襖步出監(jiān)牢的瞬間钳垮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工沛膳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扔枫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓锹安,卻偏偏與公主長得像,于是被迫代替她去往敵國和親倚舀。 傳聞我的和親對象是個殘疾皇子叹哭,可洞房花燭夜當晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前言 隨著業(yè)務的快速發(fā)展我們?nèi)粘S龅降南到y(tǒng)性能壓力問題也逐漸出現(xiàn),甚至在部分場合會遇到一些突發(fā)的營銷活動痕貌,會導致系...
    公子小白123閱讀 655評論 2 6
  • 前言 隨著業(yè)務的快速發(fā)展我們?nèi)粘S龅降南到y(tǒng)性能壓力問題也逐漸出現(xiàn)风罩,甚至在部分場合會遇到一些突發(fā)的營銷活動,會導致系...
    monkey01閱讀 29,262評論 4 46
  • 背景與意義 境內(nèi)度假是一個低頻舵稠、與節(jié)假日典型相關的業(yè)務超升,流量在節(jié)假日較平日會上漲五到十幾倍,會給生產(chǎn)系統(tǒng)帶來非常大...
    生活的探路者閱讀 1,676評論 0 7
  • 我從來都覺得自己是自信的人哺徊。 上學的時候室琢,分數(shù)給了我無比的自信,我很享受我總是“對”的那種感覺落追。那時的我...
    絕大少數(shù)閱讀 743評論 1 4
  • $array = file('http://www.你想要的網(wǎng)址.cn/'); $string=implode('...
    KINGZ1993閱讀 265評論 0 0