日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 架構(gòu)師社區(qū)
[導(dǎo)讀]作者:小熱愛(ài)來(lái)源:https://juejin.cn/post/6955372476649963556秒殺活動(dòng)是絕大部分電商選擇的低價(jià)促銷、推廣品牌的方式。不僅可以給平臺(tái)帶來(lái)用戶量,還可以提高平臺(tái)知名度。一個(gè)好的秒殺系統(tǒng),可以提高平臺(tái)系統(tǒng)的穩(wěn)定性和公平性,獲得更好的用戶體驗(yàn),提升...

作者:小熱愛(ài)

來(lái)源:https://juejin.cn/post/6955372476649963556


秒殺活動(dòng)是絕大部分電商選擇的低價(jià)促銷、推廣品牌的方式。不僅可以給平臺(tái)帶來(lái)用戶量,還可以提高平臺(tái)知名度。一個(gè)好的秒殺系統(tǒng),可以提高平臺(tái)系統(tǒng)的穩(wěn)定性和公平性,獲得更好的用戶體驗(yàn),提升平臺(tái)的口碑,從而提升秒殺活動(dòng)的最大價(jià)值。

一 秒殺的特征

秒殺活動(dòng)對(duì)稀缺或者特價(jià)的商品進(jìn)行定時(shí)定量售賣,吸引成大量的消費(fèi)者進(jìn)行搶購(gòu),但又只有少部分消費(fèi)者可以下單成功。因此,秒殺活動(dòng)將在較短時(shí)間內(nèi)產(chǎn)生比平時(shí)大數(shù)十倍,上百倍的頁(yè)面訪問(wèn)流量和下單請(qǐng)求流量。

秒殺活動(dòng)可以分為3個(gè)階段:

  • 秒殺前:用戶不斷刷新商品詳情頁(yè),頁(yè)面請(qǐng)求達(dá)到瞬時(shí)峰值。

  • 秒殺開(kāi)始:用戶點(diǎn)擊秒殺按鈕,下單請(qǐng)求達(dá)到瞬時(shí)峰值。

  • 秒殺后:一部分成功下單的用戶不斷刷新訂單或者產(chǎn)生退單操作,大部分用戶繼續(xù)刷新商品詳情頁(yè)等待退單機(jī)會(huì)。

消費(fèi)者提交訂單,一般做法是利用數(shù)據(jù)庫(kù)的行級(jí)鎖,只有搶到鎖的請(qǐng)求可以進(jìn)行庫(kù)存查詢和下單操作。但是在高并發(fā)的情況下,數(shù)據(jù)庫(kù)無(wú)法承擔(dān)如此大的請(qǐng)求,往往會(huì)使整個(gè)服務(wù)blocked,在消費(fèi)者看來(lái)就是服務(wù)器宕機(jī)。

二 秒殺系統(tǒng)

使用Redis搭建電商秒殺系統(tǒng)

秒殺系統(tǒng)的流量雖然很高,但是實(shí)際有效流量是十分有限的。利用系統(tǒng)的層次結(jié)構(gòu),在每個(gè)階段提前校驗(yàn),攔截?zé)o效流量,可以減少大量無(wú)效的流量涌入數(shù)據(jù)庫(kù)。

2.1 ?利用瀏覽器緩存和CDN抗壓靜態(tài)頁(yè)面流量

秒殺前,用戶不斷刷新商品詳情頁(yè),造成大量的頁(yè)面請(qǐng)求。所以,我們需要把秒殺商品詳情頁(yè)與普通的商品詳情頁(yè)分開(kāi)。對(duì)于秒殺商品詳情頁(yè)盡量將能靜態(tài)化的元素靜態(tài)化處理,除了秒殺按鈕需要服務(wù)端進(jìn)行動(dòng)態(tài)判斷,其他的靜態(tài)數(shù)據(jù)可以緩存在瀏覽器和CDN上。這樣,秒殺前刷新頁(yè)面導(dǎo)致的流量進(jìn)入服務(wù)端的流量只有很小的一部分。

2.2 利用讀寫分離Redis緩存攔截流量

CDN是第一級(jí)流量攔截,第二級(jí)流量攔截我們使用支持讀寫分離的Redis。在這一階段我們主要讀取數(shù)據(jù),讀寫分離Redis能支持高達(dá)60萬(wàn)以上qps,完全可以支持需求。

首先通過(guò)數(shù)據(jù)控制模塊,提前將秒殺商品緩存到讀寫分離Redis,并設(shè)置秒殺開(kāi)始標(biāo)記如下:

"goodsId_count": 100 //總數(shù)"goodsId_start": 0 //開(kāi)始標(biāo)記"goodsId_access": 0 //接受下單數(shù)

  1. 秒殺開(kāi)始前,服務(wù)集群讀取goodsId_Start為0,直接返回未開(kāi)始。

  2. 數(shù)據(jù)控制模塊將goodsId_start改為1,標(biāo)志秒殺開(kāi)始。

  3. 服務(wù)集群緩存開(kāi)始標(biāo)記位并開(kāi)始接受請(qǐng)求,并記錄到Redis中g(shù)oodsId_access,商品剩余數(shù)量為(goodsId_count - goodsId_access)。

  4. 當(dāng)接受下單數(shù)達(dá)到goodsId_count后,繼續(xù)攔截所有請(qǐng)求,商品剩余數(shù)量為0。

疑問(wèn)
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉