《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之大秒系統(tǒng)的極致優(yōu)化思路[七]

全鏈路的優(yōu)化案例诽表,即用戶端->中間的鏈路->服務(wù)端->數(shù)據(jù)庫的整條鏈路的極致優(yōu)化思路士败。

1.熱點(diǎn)隔離

秒殺系統(tǒng)的第一個(gè)設(shè)計(jì)原則就是隔離熱點(diǎn)數(shù)據(jù)村怪,即禁止1%的請求影響剩余99%的請求析藕。
業(yè)務(wù)隔離慷垮,例如通過賣家報(bào)名阿纤,我們就可以把他們設(shè)置為已知熱點(diǎn)句灌,提前做好預(yù)熱。
系統(tǒng)隔離欠拾,通過分組部署的方式把1%的請求與剩下的99%的請求分開胰锌。
數(shù)據(jù)隔離,秒殺所調(diào)用的數(shù)據(jù)大部分都是熱的數(shù)據(jù)藐窄,比如啟用單獨(dú)Cache集群或者M(jìn)ySQL數(shù)據(jù)庫來釋放熱點(diǎn)數(shù)據(jù)资昧,目的是避免0.01%的數(shù)據(jù)影響到其余99.99%的數(shù)據(jù)。
按照用戶來區(qū)分枷邪,可以不同的用戶分配不同的Cookie榛搔,在接入層再路由到不同的服務(wù)接口中,還可以在接入層針對URL的不同路徑設(shè)置限流策略东揣。
在服務(wù)層調(diào)用不同的服務(wù)接口践惑。
在數(shù)據(jù)層可以通過給數(shù)據(jù)打上特殊標(biāo)簽來區(qū)分。

2.動(dòng)靜分離

什么是靜態(tài)化系統(tǒng)嘶卧,有哪些屬性尔觉?
一個(gè)頁面對應(yīng)的URL通常固定,頁面不包含瀏覽者的相關(guān)因素芥吟,不包含時(shí)間相關(guān)的因素侦铜,不包含地域因素,不能包含Cookie等私有數(shù)據(jù)钟鸵。
靜態(tài)化系統(tǒng)能解決什么問題
Java系統(tǒng)天生就存在不擅長處理大量連接請求钉稍,每個(gè)連接消耗的內(nèi)存較多和Servlet容器解析HTTP協(xié)議較慢等弱點(diǎn)。
因此棺耍,這種情況下贡未,使請求盡量不經(jīng)過Java系統(tǒng),而在前面的Web服務(wù)層就直接返回。
系統(tǒng)靜態(tài)化的優(yōu)勢在于:改變了緩存方式俊卤。
靜態(tài)化方案的選擇
實(shí)體機(jī)單機(jī)部署
統(tǒng)一Cache層
上CDN
如何失效
被動(dòng)失效:主要處理模板變更和一些對時(shí)效性不太敏感的數(shù)據(jù)的失效嫩挤,采用設(shè)置Cache時(shí)間長度這種自動(dòng)失效的方式。
主動(dòng)失效:Java系統(tǒng)發(fā)布清空Cache消恍,VM模板發(fā)布清空Cache岂昭,根據(jù)時(shí)間戳失效。
大秒系統(tǒng)特點(diǎn):
把整個(gè)頁面Cache在用戶瀏覽器上狠怨;
如果強(qiáng)制刷新整個(gè)頁面约啊,也會(huì)請求到CDN;
實(shí)際有效請求只是刷新?lián)寣毎粹o取董。
通過這樣的設(shè)計(jì)棍苹,可以把90%的靜態(tài)數(shù)據(jù)緩存在用戶端或者CDN上,當(dāng)秒殺系統(tǒng)開始時(shí)茵汰,用戶不需要刷新整個(gè)頁面枢里,只需要點(diǎn)擊特殊的按鈕即可。
如何改造動(dòng)態(tài)系統(tǒng)
URL唯一化蹂午,分離瀏覽者相關(guān)的因素栏豺,分離時(shí)間因素,異步化地域因素豆胸,去掉Cookie奥洼。

3.基于時(shí)間分片削峰

所有熟悉秒殺的人都知道第一版的秒殺系統(tǒng)本身并沒有答題功能,后面才增加了秒殺答題晚胡。秒殺答題很重要的作用是防止秒殺器灵奖。
增加答題的另一個(gè)重要功能就是拉長了峰值的下單請求時(shí)間,從以前的1秒之內(nèi)延長到2-10秒左右估盘,請求峰值開始基于時(shí)間分片瓷患。

4.數(shù)據(jù)分層校驗(yàn)

對大流量系統(tǒng)的數(shù)據(jù)做分層校驗(yàn)也是一項(xiàng)重要的設(shè)計(jì)原則。分層就是用“漏斗式”的設(shè)計(jì)來處理請求遣妥。
它的核心思想是在不同層次擅编、不斷盡可能地過濾掉無效請求,只有“漏斗”最末端的才是有效請求箫踩。
數(shù)據(jù)的動(dòng)靜分離爱态;將90%的數(shù)據(jù)緩存在客戶端瀏覽器,動(dòng)態(tài)請求的讀數(shù)據(jù)Cache在Web端境钟;對讀數(shù)據(jù)不做強(qiáng)一致性校驗(yàn)锦担;對寫數(shù)據(jù)進(jìn)行基于時(shí)間的合理分片;對寫請求做限流保護(hù)慨削;對寫數(shù)據(jù)進(jìn)行強(qiáng)一致性校驗(yàn)吆豹。

5.實(shí)時(shí)熱點(diǎn)發(fā)現(xiàn)

第一步鱼的,構(gòu)建一個(gè)異步的、可以收集交易鏈路上各個(gè)中間件產(chǎn)品本身統(tǒng)計(jì)的熱點(diǎn)key痘煤;
第二步,建立熱點(diǎn)上報(bào)和按照需求訂閱的熱點(diǎn)服務(wù)的下發(fā)規(guī)范猿规;
第三步衷快,將上游系統(tǒng)收集到的熱點(diǎn)數(shù)據(jù)發(fā)送到熱點(diǎn)服務(wù)臺上,這樣下游系統(tǒng)如交易系統(tǒng)就會(huì)知道哪些商品被頻繁調(diào)用姨俩,再對此做熱點(diǎn)保護(hù)蘸拔。

6.關(guān)鍵技術(shù)優(yōu)化點(diǎn)

Java處理大并發(fā)動(dòng)態(tài)請求優(yōu)化的問題
同一商品被大并發(fā)讀的問題
同一數(shù)據(jù)大并發(fā)更新問題

7.大促熱點(diǎn)問題思考

一些通用規(guī)則:隔離、動(dòng)靜分離环葵、分層校驗(yàn)调窍、必須從全鏈路來考慮和優(yōu)化每個(gè)環(huán)節(jié),除了優(yōu)化系統(tǒng)提升性能以外张遭,做好限流和保護(hù)也是必備功課邓萨。

8.總結(jié)

從用戶的請求到服務(wù)端的整個(gè)請求鏈路上,每個(gè)環(huán)節(jié)都可以檢查是否有能夠優(yōu)化的地方菊卷,以達(dá)到極致優(yōu)化的效果缔恳。


推薦閱讀:
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之分布式改造[一]
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之無線時(shí)代下的構(gòu)架演進(jìn)[二]
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之大中臺小前臺[三]
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之全球部署方案[四]
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之代碼級優(yōu)化[五]
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之合并部署[六]
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之資源調(diào)度優(yōu)化[八]
<<<《大型網(wǎng)站技術(shù)架構(gòu)演進(jìn)與性能優(yōu)化》之大型網(wǎng)站的穩(wěn)定性建設(shè)[九]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市洁闰,隨后出現(xiàn)的幾起案子歉甚,更是在濱河造成了極大的恐慌,老刑警劉巖扑眉,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纸泄,死亡現(xiàn)場離奇詭異,居然都是意外死亡腰素,警方通過查閱死者的電腦和手機(jī)聘裁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耸弄,“玉大人咧虎,你說我怎么就攤上這事〖瞥剩” “怎么了砰诵?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捌显。 經(jīng)常有香客問我茁彭,道長,這世上最難降的妖魔是什么扶歪? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任理肺,我火速辦了婚禮摄闸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妹萨。我一直安慰自己年枕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布乎完。 她就那樣靜靜地躺著熏兄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪树姨。 梳的紋絲不亂的頭發(fā)上摩桶,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音帽揪,去河邊找鬼硝清。 笑死,一個(gè)胖子當(dāng)著我的面吹牛转晰,可吹牛的內(nèi)容都是我干的芦拿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼挽霉,長吁一口氣:“原來是場噩夢啊……” “哼防嗡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起侠坎,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蚁趁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后实胸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體他嫡,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年庐完,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钢属。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡门躯,死狀恐怖淆党,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情讶凉,我是刑警寧澤染乌,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站懂讯,受9級特大地震影響荷憋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜褐望,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一勒庄、第九天 我趴在偏房一處隱蔽的房頂上張望串前。 院中可真熱鬧,春花似錦实蔽、人聲如沸荡碾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽玩荠。三九已至,卻和暖如春贼邓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背闷尿。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工塑径, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人填具。 一個(gè)月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓统舀,卻偏偏與公主長得像,于是被迫代替她去往敵國和親劳景。 傳聞我的和親對象是個(gè)殘疾皇子誉简,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

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