更新時(shí)間:2019-02-13 10:23 來源:動(dòng)力節(jié)點(diǎn) 瀏覽16491次
秒殺是互聯(lián)網(wǎng)應(yīng)用常見的應(yīng)用場(chǎng)景,比如淘寶雙十一、京東618,以及一些交易網(wǎng)站或應(yīng)用在特定的時(shí)間舉行的搶購(gòu)活動(dòng)。由于商品的稀缺或者特價(jià)優(yōu)惠,并且為限量銷售,導(dǎo)致大量用戶前來?yè)屬?gòu),并且會(huì)在約定的秒殺開始時(shí)間點(diǎn)同時(shí)進(jìn)行搶購(gòu),造成服務(wù)器巨大的訪問壓力,對(duì)于一個(gè)秒殺系統(tǒng),需要有特殊的設(shè)計(jì)才可解決秒殺場(chǎng)景下的巨大流量洪峰以及數(shù)據(jù)的一致性問題。
秒殺系統(tǒng)場(chǎng)景的主要特點(diǎn)
秒殺時(shí)大量用戶會(huì)在同一時(shí)間同時(shí)進(jìn)行搶購(gòu),網(wǎng)站瞬時(shí)訪問流量激增。
秒殺一般是訪問請(qǐng)求數(shù)量遠(yuǎn)遠(yuǎn)大于庫(kù)存數(shù)量,只有少部分用戶能夠秒殺成功。
秒殺架構(gòu)設(shè)計(jì)理念
防刷設(shè)計(jì):設(shè)計(jì)有效的防刷機(jī)制,有效攔截?zé)o效請(qǐng)求,避免用戶惡意調(diào)用秒殺相關(guān)接口。
數(shù)據(jù)分層校驗(yàn):盡可能在不同層將無效請(qǐng)求攔截并過濾掉,讓真正有效的請(qǐng)求落入后端服務(wù)。
限流: 鑒于只有少部分用戶能夠秒殺成功,所以要限制大部分流量,只允許少部分流量進(jìn)入服務(wù)后端。
流量削峰:對(duì)于秒殺系統(tǒng)瞬時(shí)會(huì)有大量用戶涌入,所以在搶購(gòu)一開始會(huì)有很高的瞬間流量峰值。高峰值流量是壓垮系統(tǒng)很重要的原因,所以如何把瞬間的高峰流量變成一段時(shí)間內(nèi)的平穩(wěn)流量是設(shè)計(jì)秒殺系統(tǒng)很重要的思路,實(shí)現(xiàn)削峰的常用的方法是利用緩存和消息中間件等技術(shù)。
超賣設(shè)計(jì):庫(kù)存數(shù)量有限,如何有效控制商品超賣是秒殺系統(tǒng)不可避免的一個(gè)問題;
異步處理:秒殺系統(tǒng)是一個(gè)高并發(fā)系統(tǒng),采用異步處理模式可以極大地提高系統(tǒng)并發(fā)量,當(dāng)然異步處理也是削峰的一種實(shí)現(xiàn)方式。
內(nèi)存緩存:秒殺系統(tǒng)最大的瓶頸一般都是數(shù)據(jù)庫(kù)讀寫,由于數(shù)據(jù)庫(kù)讀寫屬于磁盤IO,性能很低,如果能夠把部分?jǐn)?shù)據(jù)或業(yè)務(wù)邏輯轉(zhuǎn)移到內(nèi)存緩存,效率會(huì)有極大地提升。
動(dòng)靜分離:將大量靜態(tài)資源進(jìn)行CDN緩存,減少后端服務(wù)器的請(qǐng)求壓力。
主備容災(zāi):在有條件的情況下做好主備容災(zāi),提前預(yù)防被惡意攻擊;
可拓展:當(dāng)然如果我們想支持更多用戶,更大的并發(fā),最好將系統(tǒng)設(shè)計(jì)成彈性可拓展的,如果流量迅速增大,拓展機(jī)器即可。像淘寶、京東等雙十一活動(dòng)時(shí)會(huì)增加大量服務(wù)器來應(yīng)對(duì)流量洪峰。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743