系統(tǒng)練級(jí)攻略 | 京東架構(gòu)師傾情解讀
引言
系統(tǒng)搭建,小有小的靈活,大有大的難處,從小到大,系統(tǒng)該怎么打怪練級(jí)呢?
首先:守住你的底線
- 底線?單體實(shí)例的***處理量
 - 單體實(shí)例?泛指單個(gè)應(yīng)用實(shí)例、單個(gè)緩存實(shí)例,單個(gè)存儲(chǔ)實(shí)例
 - 底線從何而來(lái)?壓測(cè)
 - 底線恒定不變?隨著服務(wù)的架構(gòu)變化隨時(shí)調(diào)整
 - 如:一個(gè)實(shí)例【java實(shí)例+DB】的處理峰值為500/秒,在緩存化數(shù)據(jù)后處理峰值可以調(diào)整的5000/秒,但是緩存異常情況下,系統(tǒng)降級(jí),那峰值必須要回到500/秒。
 - 守不住底線?打怪如同碰見(jiàn)一個(gè)大 BOSS,經(jīng)由負(fù)載均衡一個(gè)個(gè)秒掉你的服務(wù),最終全局502
 - 怎么守住底線?限流、限流、限流!
 - 限流:一個(gè)系統(tǒng)穩(wěn)定的***層的護(hù)城河,永遠(yuǎn)不要輕視它。
 
線上的情況千變?nèi)f化,交易峰值你可以規(guī)劃,但是異常流量永遠(yuǎn)不可預(yù)測(cè)
如我們的限流拆分:
- 調(diào)整線上限流依據(jù)?監(jiān)控,分流監(jiān)控
 
監(jiān)控的力度也是根據(jù)限流層次同步細(xì)化
PS:我們搭建了一個(gè)流量分析平臺(tái),通過(guò)接入系統(tǒng),可以通過(guò)自定義規(guī)則定義流量拆分報(bào)表,并且實(shí)現(xiàn)精細(xì)化流量控制
其次:不斷提高底線
1. 提高單位處理量
優(yōu)化數(shù)據(jù)結(jié)構(gòu)和使用緩存等手段,提升單體實(shí)例的***吞吐量。
常用手段:
- 網(wǎng)站靜態(tài)流量分流:頁(yè)面靜態(tài)化、APP本地緩存、CDN分發(fā)
 - 數(shù)據(jù)緩存化:配置性數(shù)據(jù)本地預(yù)加載緩存,熱點(diǎn)數(shù)據(jù)redis預(yù)加載緩存[注意:緩存也是吞吐量閥值和容量閥值]
 - 流程簡(jiǎn)化:收單流程和生產(chǎn)流程拆分
 - 請(qǐng)求流量清理:?jiǎn)⒂胓zip壓縮、ajax清理掉多余的數(shù)據(jù)信息
 
2. 無(wú)狀態(tài)化
高內(nèi)聚,低耦合,將應(yīng)用+DB打包成一個(gè)對(duì)外可擴(kuò)展的服務(wù)模塊,標(biāo)準(zhǔn)有三:
- 對(duì)內(nèi)依賴(lài)數(shù)據(jù)的多源化
 - 對(duì)上游實(shí)現(xiàn)無(wú)依賴(lài)化
 - 對(duì)下游實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)傳遞
 
價(jià)保系統(tǒng)流程處理中心樣例:
***:統(tǒng)籌變化,橫向擴(kuò)展
1. 監(jiān)控為眼
統(tǒng)籌變化,首先要對(duì)系統(tǒng)的流量情況了若指掌,是通過(guò)監(jiān)控系統(tǒng)來(lái)實(shí)現(xiàn)的。
2. 流程優(yōu)化
只有簡(jiǎn)單的業(yè)務(wù)流程才是穩(wěn)定可靠的,將業(yè)務(wù)流程和接單流程拆分,針對(duì)性配置資源,才能實(shí)現(xiàn)性能和資源的靈活安排。
針對(duì)現(xiàn)在的微服務(wù)化,要根據(jù)系統(tǒng)所處階段靈活拆分,任何過(guò)度設(shè)計(jì)都會(huì)導(dǎo)致開(kāi)發(fā)量和運(yùn)維量飆升,最終影響系統(tǒng)的穩(wěn)定性。
3. 橫向擴(kuò)展
集群化計(jì)算中心【容器+DB】,橫向擴(kuò)容縮容,外部依賴(lài)異??伸`活切換。
系統(tǒng)練級(jí)標(biāo)準(zhǔn)
1. 單實(shí)例不死
通過(guò)DB限流和應(yīng)用限流,保證單實(shí)例在大流量下沖擊下,會(huì)出現(xiàn)服務(wù)性能變差,但是不會(huì)死掉。
2. 分類(lèi)型限流
在細(xì)化監(jiān)控基礎(chǔ)上,針對(duì)不同業(yè)務(wù)不同流程配置不同的限流閥值,保證異常流量可監(jiān)控,可阻截,高效的提供正常服務(wù)。
3. 集群擴(kuò)展【DB+實(shí)例】
將DB和實(shí)例打包成一個(gè)集群,可以根據(jù)服務(wù)流量動(dòng)態(tài)調(diào)整擴(kuò)容縮容。
該集群具備標(biāo)準(zhǔn):對(duì)上游通過(guò)接口擴(kuò)容,數(shù)據(jù)流內(nèi)部自我驅(qū)動(dòng)流轉(zhuǎn),對(duì)下游主動(dòng)同步。
4. 外部依賴(lài)無(wú)感化
簡(jiǎn)而言之就是外部依賴(lài)接口掛掉不影響系統(tǒng)的核心功能,通過(guò)將相關(guān)依賴(lài)數(shù)據(jù)預(yù)抓取實(shí)現(xiàn)熱數(shù)據(jù)備份,保證接口掛掉后自我降級(jí),保證服務(wù)的可用性。
每個(gè)階段都是應(yīng)該隨著系統(tǒng)的流量的增加,逐級(jí)優(yōu)化,反之就是過(guò)度設(shè)計(jì),導(dǎo)致研發(fā)和線上運(yùn)維成本等上升,反而影響系統(tǒng)穩(wěn)定性。
劉慎寶:京東財(cái)務(wù)研發(fā)部架構(gòu)師,主要負(fù)責(zé)財(cái)務(wù)研發(fā)部的基礎(chǔ)組件和各系統(tǒng)技術(shù)方案支持,10+年互聯(lián)網(wǎng)研發(fā)專(zhuān)家。2010年入職京東并歷經(jīng)幾乎所有618和雙11挑戰(zhàn)。精通高并發(fā)服務(wù)搭建和業(yè)務(wù)建模,曾多次主導(dǎo)京東財(cái)務(wù)系統(tǒng)架構(gòu)升級(jí)和數(shù)據(jù)庫(kù)升級(jí),主導(dǎo)結(jié)算魔方重構(gòu),訂單臺(tái)賬優(yōu)化、價(jià)保優(yōu)化等重大研發(fā)項(xiàng)目,對(duì)財(cái)務(wù)系統(tǒng)有深刻理解。
【本文來(lái)自51CTO專(zhuān)欄作者張開(kāi)濤的微信公眾號(hào)(開(kāi)濤的博客),公眾號(hào)id: kaitao-1234567】


















 
 
 





 
 
 
 