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

秒殺項目
秒殺項目基本環境搭建
商品展示模塊
請求執行秒殺模塊
秒殺流程總結

秒殺流程總結

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

2. 點擊進入某個商品的詳情頁

3. 進入商品詳情頁后

• 秒殺未開始顯示秒殺倒計時

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

• 秒殺已結束顯示秒殺結束

4. 用戶在商品詳情頁點擊秒殺按鈕后

① 驗證商品id和秒殺唯一標志是否合法 (秒殺唯一標識:暴露秒殺地址)

② 判斷秒殺時間是否開始

判斷商品的秒殺開始時間和結束時間,用當前系統時間和他們做比較

③ 判斷秒殺是否搶光了

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

④ 判斷用戶是否已經秒殺過該商品

判斷Redis中的key是否存在,用戶秒殺后會在Redis中設置一個占位的key來標識用戶已經秒殺過該商品

5. 判斷當前系統流量是否已經超過閾值

• 通過Redis的List數據結構實現

• 每有一個用戶請求,就將用戶的請求放入List

• 當List的長度達到我們設置的最大值后(通常設置為商品庫存數的100倍等)

• 拒絕后續用戶的訪問,減輕系統的壓力

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

7. 進行秒殺

① 減庫存

在redis中減庫存,采用redis減庫存 decrBy 方法(單線程的操作,不會產生數據沖突)

我們數據庫中并沒有直接減庫存,因為數據庫性能瓶頸問題

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

② 下訂單

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

• 采用隊列ActiveMQ下訂單

• 減庫存成功后,給MQ發一個消息

• 消息監聽器接收到消息后在數據庫創建訂單

• 如果消息消費不過來,可以設置concurrency="8" 8個消費者,那么消費消息的速度就會加快,不會產生消息的堆積

③ 告知前臺頁面秒殺結果

創建訂單成功或者失敗后,都把秒殺結果放入到redis中;

前臺頁面采用ajax輪詢方式查詢redis獲取最終秒殺結果,給用戶提示。

全部教程
主站蜘蛛池模板: 免费一级毛片麻豆精品 | 一级香蕉免费毛片 | 91伊人影院| 欧美三级做爰视频 | 欧洲亚洲精品 | 欧美深度肠交 | 国内夫妇精品对白在线播放 | 久操福利视频 | 国产精品一区牛牛影视 | 亚欧有色亚欧乱色视频 | 欧美精品午夜毛片免费看 | 久久亚洲精品永久网站 | 欧美成人观看视频在线 | 成 人 a v免费视频 | 国产真实一区二区三区 | 精品国产夜色在线 | 国产a自拍 | 激情综合网五月婷婷 | 97色伦图片97色伦图影院久久 | 香蕉国产综合久久猫咪 | 久久99国产精品二区不卡 | 尤物视频在线观看 | 国产精品久久久久毛片 | 国产麻豆永久视频 | 欧美成人免费高清二区三区 | 99精品视频免费观看 | 国产理论视频 | 天天干狠狠干 | 日日噜噜夜夜狠视频免费 | 天天操天天摸天天干 | 久久狠色噜噜狠狠狠狠97 | 色噜噜亚洲精品中文字幕 | 欧美另类色 | 99这里精品 | 日韩精品一区二区三区中文在线 | 亚洲一区视频 | 2021国产精品久久 | 无遮挡一级毛片视频 | 久青草国产免费观看 | 欧美精品亚洲精品日韩专区 | 久久99热国产这有精品 |