除了從觀念上重視系統(tǒng)研發(fā)生命周期的各個階段以外,真正建設(shè)高可用的系統(tǒng)還需要一整套工具體系的支撐,這套體系包括壓測體系、管控體系、監(jiān)控體系、恢復(fù)體系和度量體系。
1.壓測體系
壓測體系是測試時發(fā)現(xiàn)問題的重要手段。壓測除了能幫助發(fā)現(xiàn)功能異常外,還能發(fā)現(xiàn)一些平時不容易發(fā)現(xiàn)的問題,如當(dāng)系統(tǒng)壓力大時系統(tǒng)的表現(xiàn)情況、線上系統(tǒng)的容量配比是否合理、系統(tǒng)的容災(zāi)保護是否到位等。壓測一般分為單系統(tǒng)壓測和全鏈路壓測,我們所說的壓測是線上真實生產(chǎn)環(huán)境的壓力測試。
(1)單系統(tǒng)壓測
比較容易實現(xiàn),有多種實現(xiàn)手段。
種是引流的方式,就是將線上集群中的流量集中到少部分的機器上,當(dāng)這些機器流量變大時就會達到瓶頸,就能得出單機的極限性能,根據(jù)單機的性能就能推算出整個集群的性能。由于是線上的真實用戶的訪問請求,這種引流的方式不會產(chǎn)生額外的測試數(shù)據(jù),所以對讀、寫系統(tǒng)都合適。
另外一種是放大流量的方式。例如通過 Tcpcopy工具可以把一個請求copy出多個重復(fù)的請求;還有一個方式是針對頁面類型這種系統(tǒng),可以在頁面中注入一些
JavascriptnewImage.r-htp://item.beta.taobao.com/tem.htm?id-fitemld)
在請求這個頁面時,會自動向服務(wù)端額外發(fā)送一個請求,這樣可以讓用戶幫我們制造流量達到壓測的目的。當(dāng)然這種方式會產(chǎn)生壓測數(shù)據(jù),所以只適合讀系統(tǒng)而不適合寫系統(tǒng)。
(2)全鏈路壓測
全鏈路壓測是目前比較好的、可以制造出線上大流量的手段。它的優(yōu)點在于能串聯(lián)線上全部系統(tǒng),并讓每個系統(tǒng)同時達到流量峰值(尤其是公共系統(tǒng)),所以適用的場景更多,但實施成本相對較高。
全鏈路壓測的技術(shù)難度并不大,技術(shù)手段主要有流量的制造、流量的標(biāo)記、測試數(shù)據(jù)的處理,全鏈路壓測的架構(gòu)。
流量的制造除了要能夠控制流量大小外,還要注意流量發(fā)起所在的物理網(wǎng)絡(luò)位置最好能保證流量是從不同的地理位置發(fā)起的,流量發(fā)起端可以部署在各地的CDN節(jié)點中,并把不同的網(wǎng)絡(luò)運營商也考慮進來,這樣能更好地模擬真實的用戶請求。流量的標(biāo)記
流量制造出來以后,需要做標(biāo)記,因為它們屬于測試流量,它們的數(shù)據(jù)是測試數(shù)據(jù),不能和線上的真實數(shù)據(jù)混同。
標(biāo)記流量有多種方式:一種是設(shè)計不同的數(shù)據(jù),例如商品數(shù)據(jù)的商品ID都以999開頭、把訂單ID設(shè)置在某個特殊的區(qū)段內(nèi);第二種是給每個請求貼上一個tace標(biāo)簽,每個系統(tǒng)調(diào)用的地方都能識別出這個標(biāo)簽,一方面可以做一些特殊處理,如取消 token驗證,另外一方面也可以把它路由到特殊的數(shù)據(jù)表中。
tace的傳遞是一個難題,最好的方式是通過中間件來完成:從最外面的HTP協(xié)議將tace添加在 Header中,到應(yīng)用的RPC調(diào)用中也可以加到協(xié)議頭中,再到數(shù)據(jù)層中也一樣,最重要的是要保證race標(biāo)簽不能被丟掉否則將出現(xiàn)臟數(shù)據(jù)。
測試數(shù)據(jù)的處理
對測試數(shù)據(jù)的處理是最關(guān)鍵的環(huán)節(jié),因為是線上真實生產(chǎn)環(huán)境的壓測,所以對產(chǎn)生的數(shù)據(jù)的處理不能影響線上的真實數(shù)據(jù)。對此,我們提出影子表的概念,它和線上的真實表完全一樣,甚至和真實表一樣用在同一個數(shù)據(jù)庫實例中,通過傳遞下來的tace標(biāo)記把這個請求需要寫的數(shù)據(jù)路由到影子表中,這樣測試流量的讀寫都在影子表中完成,不會影響線上的真實數(shù)據(jù)。將測試數(shù)據(jù)通過影子表來隔離是非常關(guān)鍵的,如果放在一起會引起很多麻煩,也不好清理,即使能夠清理也會影響正式表的主鍵生成規(guī)則,影響下游BI對數(shù)據(jù)的分析和一些監(jiān)控指標(biāo)的展示等。
2.管控體系
管控體系主要是在遇到一些異常情況時提供保護系統(tǒng)的措施,包括開關(guān)系統(tǒng)、預(yù)案系統(tǒng)、限流降級系統(tǒng)等。
1)開關(guān)系統(tǒng)
開關(guān)系統(tǒng)主要是管理一些線上常用的操作,尤其是一些帶有聯(lián)動性的操作,通過統(tǒng)一管理可以減少出錯的概率。
網(wǎng)站建設(shè)開關(guān)系統(tǒng)既要支持基于內(nèi)存和持久化的操作方式,也要支持單機和集群的靈活操作方式。
分享名稱:網(wǎng)站建設(shè)高可用體系化建設(shè)
當(dāng)前路徑:http://redsoil1982.com.cn/news11/148561.html
網(wǎng)站建設(shè)、網(wǎng)絡(luò)推廣公司-創(chuàng)新互聯(lián),是專注品牌與效果的網(wǎng)站制作,網(wǎng)絡(luò)營銷seo公司;服務(wù)項目有網(wǎng)站建設(shè)等
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)