黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

秒殺流程總結

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国内精品久久久久免费影院 | 精品在线视频免费 | 国产成人v视频在线观看 | 免费又黄又硬又大爽日本 | 二个人的视频www | 欧美一级三级在线观看 | 精品一区二区三区中文 | 国产国语高清在线视频二区 | 欧美综合亚洲 | 日本午色www高清视频 | 精品在线播放 | 精品久久一区二区 | 午夜视频1000 | 在线视频一区二区三区 | 色图综合 | 在线观看视频免费 | 日韩精品第一 | 成年视频免费 | 国产精品福利无圣光一区二区 | 成人羞羞视频在线观看 | 美女下面粉嫩粉嫩冒白浆高清 | 爱呦视频在线播放网址 | 国产成人精品午夜视频' | 久草三级 | 91午夜精品亚洲一区二区三区 | 有色视频在线观看 | 国产v亚洲v天堂无码 | 美女高清特黄a大片 | 在线观看深夜 | 国产精品一区二区三 | 在线观看视频免费 | 手机看片欧美日韩 |