大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

秒殺項(xiàng)目
秒殺項(xiàng)目基本環(huán)境搭建
商品展示模塊
請(qǐng)求執(zhí)行秒殺模塊
秒殺流程總結(jié)

秒殺流程總結(jié)

1. 商品列表頁,用戶瀏覽商品

2. 點(diǎn)擊進(jìn)入某個(gè)商品的詳情頁

3. 進(jìn)入商品詳情頁后

• 秒殺未開始顯示秒殺倒計(jì)時(shí)

• 秒殺已開始顯示秒殺按鈕

• 秒殺已結(jié)束顯示秒殺結(jié)束

4. 用戶在商品詳情頁點(diǎn)擊秒殺按鈕后

① 驗(yàn)證商品id和秒殺唯一標(biāo)志是否合法 (秒殺唯一標(biāo)識(shí):暴露秒殺地址)

② 判斷秒殺時(shí)間是否開始

判斷商品的秒殺開始時(shí)間和結(jié)束時(shí)間,用當(dāng)前系統(tǒng)時(shí)間和他們做比較

③ 判斷秒殺是否搶光了

判斷Redis中該商品的庫存>0可以秒殺,<=0秒殺結(jié)束

④ 判斷用戶是否已經(jīng)秒殺過該商品

判斷Redis中的key是否存在,用戶秒殺后會(huì)在Redis中設(shè)置一個(gè)占位的key來標(biāo)識(shí)用戶已經(jīng)秒殺過該商品

5. 判斷當(dāng)前系統(tǒng)流量是否已經(jīng)超過閾值

• 通過Redis的List數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)

• 每有一個(gè)用戶請(qǐng)求,就將用戶的請(qǐng)求放入List

• 當(dāng)List的長(zhǎng)度達(dá)到我們?cè)O(shè)置的最大值后(通常設(shè)置為商品庫存數(shù)的100倍等)

• 拒絕后續(xù)用戶的訪問,減輕系統(tǒng)的壓力

• 用戶秒殺流程執(zhí)行結(jié)束后,不管是秒殺成功還是失敗,都需要將限流的List彈出一個(gè)元素,以便于讓后面的人可以再進(jìn)來一個(gè)

7. 進(jìn)行秒殺

① 減庫存

在redis中減庫存,采用redis減庫存 decrBy 方法(單線程的操作,不會(huì)產(chǎn)生數(shù)據(jù)沖突)

我們數(shù)據(jù)庫中并沒有直接減庫存,因?yàn)閿?shù)據(jù)庫性能瓶頸問題

最終我們采用定時(shí)任務(wù)每隔幾秒同步一次Redis庫存到數(shù)據(jù)庫,讓數(shù)據(jù)庫的庫存和redis的庫存同步

② 下訂單

• 異步下訂單,也是為了避免直接操作數(shù)據(jù)庫

• 采用隊(duì)列ActiveMQ下訂單

• 減庫存成功后,給MQ發(fā)一個(gè)消息

• 消息監(jiān)聽器接收到消息后在數(shù)據(jù)庫創(chuàng)建訂單

• 如果消息消費(fèi)不過來,可以設(shè)置concurrency="8" 8個(gè)消費(fèi)者,那么消費(fèi)消息的速度就會(huì)加快,不會(huì)產(chǎn)生消息的堆積

③ 告知前臺(tái)頁面秒殺結(jié)果

創(chuàng)建訂單成功或者失敗后,都把秒殺結(jié)果放入到redis中;

前臺(tái)頁面采用ajax輪詢方式查詢r(jià)edis獲取最終秒殺結(jié)果,給用戶提示。

全部教程
主站蜘蛛池模板: 天天操天天看 | 久久久久网站 | 欧美一区二区在线视频 | 桃花福利视频在线观看 | 日韩一区二区三区精品 | 九九视频免费精品视频免费 | 女女同免费播放毛片 | 十八毛片 | 久久精品30 | 天堂成人在线视频 | 久久免费精品视频 | 亚洲日韩色综合视频 | 男人看片网站 | 精品国产福利 | 国产欧美日韩综合二区三区 | 色综合久久亚洲国产日韩 | 色狠狠狠色噜噜噜综合网 | 最近中文字幕无免费视频 | 四虎影院中文字幕 | 四虎影视免费 | 久久精品久久精品久久精品 | 中文字幕一二三区乱码老 | 男人私人影院 | 色婷婷久久免费网站 | 国产精品麻豆视频 | 曰本性l交视频 | 欧美日韩一区二区综合在线视频 | 午夜剧场毛片 | 特级一级毛片视频免费观看 | 日本精品一二三区 | 狠狠色欧美亚洲综合色黑a 狠狠色视频 | 国产色婷婷精品综合在线 | 亚洲合集综合久久性色 | 久久久高清免费视频 | 日韩不卡 | 91在线手机精品免费观看 | 久久久久国产一级毛片高清版 | 久久精品爱| 四虎免费观看 | 国产精品视频一区二区三区经 | 狠狠色婷婷综合天天久久丁香 |