毕业设计-电商秒杀系统
目錄
1.業(yè)務(wù)背景
2.基本場景
3.重點(diǎn)場景分析
3.1.瀏覽秒殺商品
3.2.下單
4.存儲架構(gòu)設(shè)計
5.計算架構(gòu)設(shè)計
5.1.負(fù)載均衡
5.2.多級緩存
6.高可用設(shè)計
7.可擴(kuò)展設(shè)計
8.高可用架構(gòu)設(shè)計
本次畢業(yè)設(shè)計的題目是電商秒殺系統(tǒng)。
1.業(yè)務(wù)背景
該系統(tǒng)的業(yè)務(wù)背景概括如下:
1.日活 100 萬
2.20 個商品,10 個品類,共 200 個商品
3.秒殺商品有限,1000 個充電寶,10 臺 iphone 12
4.團(tuán)隊(duì)以 java 為主,現(xiàn)有系統(tǒng)采用微服務(wù)架構(gòu)
5.只有 app 才能秒殺
6.當(dāng)前采用單機(jī)房
7.只限于秒殺系統(tǒng)設(shè)計
2.基本場景
該系統(tǒng)的基本業(yè)務(wù)場景如下:
基本場景包括注冊、登錄、瀏覽商品、下單、支付場景。其中:
1.注冊 &登錄場景
百萬注冊用戶,每天活躍用戶 40%,登錄時讀取用戶信息是每天 40 萬 QPS
2.瀏覽商品
共 20 個秒殺商品,商品數(shù)量忽略不計;
每月活躍用戶約 40%。秒殺活動前會有推廣活動,活躍用戶會有提升,以 60%計算,約有 60 萬用戶同時在線瀏覽商品,tps 數(shù)為 600K。
3.下單
訂單數(shù)量,秒殺商品共 1010 個,那么訂單總數(shù)也為 1010 個,要求在 1s 內(nèi)完成處理,因此 tps 為 1010。
4.支付
支付一般在 5 分鐘內(nèi)完成。tps 約為 1010/300=4tps,可忽略不計。
3.重點(diǎn)場景分析
3.1.瀏覽秒殺商品
1.業(yè)務(wù)特征分析
典型讀場景,由于訂單下了后僅有少量修改,因此適合用緩存架構(gòu)
2.架構(gòu)分析
1)用戶量過百萬,應(yīng)用用多級負(fù)載均衡架構(gòu);
2)請求量 60 萬,應(yīng)該用多級緩存架構(gòu),考慮用三級緩存架構(gòu),app 緩存+web 容器緩存+分布式緩存,不用 CDN,因?yàn)闃I(yè)務(wù)量沒那么大;分布式緩存用 redis,支持持久化,可以避免丟失訂單。
3.架構(gòu)設(shè)計
登錄狀態(tài)保存在分布式緩存中,請求發(fā)送給任意服務(wù)器都可以,選擇輪詢或者隨機(jī)算法
4.業(yè)務(wù)服務(wù)器數(shù)量估算
由于瀏覽秒殺商品的處理邏輯比較簡單,主要是讀緩存系統(tǒng),因此假設(shè)單臺業(yè)務(wù)服務(wù)器處理能力是 1000/s,則機(jī)器數(shù)量為 60 臺,按照 20%的預(yù)留量,最終機(jī)器數(shù)量為 75 臺。
3.2.下單
1.業(yè)務(wù)特征分析
典型寫操作,不能用緩存,用負(fù)載均衡
2.架構(gòu)分析
用戶量 60 萬,選用多級負(fù)載均衡架構(gòu)。選擇 LVS,支持 60 萬+性能
3.架構(gòu)設(shè)計
1)負(fù)載均衡算法選擇
下單的時候依賴登錄狀態(tài),登錄狀態(tài)一般都是保存在分布式緩存中,因此下單的時候,講請求發(fā)送給任意服務(wù)器都可以,選擇輪詢或者隨機(jī)算法
2)業(yè)務(wù)服務(wù)器數(shù)量估算
按照一個服務(wù)每秒處理 500 來估算,支持 1010 個訂單處理,需要三臺服務(wù)器。
4.存儲架構(gòu)設(shè)計
5.計算架構(gòu)設(shè)計
5.1.負(fù)載均衡
5.2.多級緩存
6.高可用設(shè)計
1.業(yè)務(wù)特征分析
1)下單
商品數(shù)量有限,下單會在 1s 內(nèi)下單
2)瀏覽商品
商品數(shù)量有限,100w 用戶同時瀏覽 2 個秒殺商品
2.架構(gòu)設(shè)計分析
1)下單
下單性能要求比較高,可以考慮對“非秒殺訂單”限流,由于非秒殺訂單也是收入來源,因此不能丟棄請求,采用漏桶算法。
2)瀏覽商品
存在緩存熱點(diǎn)問題,使用“多緩存副本”。
7.可擴(kuò)展設(shè)計
將商品服務(wù)和訂單服務(wù)拆分出來,支持秒殺活動,其中商品服務(wù)支持商品、瀏覽記錄查詢,瀏覽等操作;訂單服務(wù)支持下單,訂單查詢等服務(wù)。拆分后的微服務(wù)架構(gòu)如下:
8.高可用架構(gòu)設(shè)計
當(dāng)前系統(tǒng)月活已經(jīng)到達(dá) 100 萬,還只是單機(jī)房設(shè)計,遠(yuǎn)遠(yuǎn)不能滿足系統(tǒng)穩(wěn)定運(yùn)行要求;同時通過秒殺活動會拉新業(yè)務(wù)量會進(jìn)一步增長。為保障業(yè)務(wù)未來一段時間平穩(wěn)運(yùn)行,需要將當(dāng)單機(jī)房擴(kuò)建為同城雙中心,時間允許的情況下,跳過災(zāi)備方式,直接從單機(jī)房升級為雙活架構(gòu),確保秒殺業(yè)務(wù)萬無一失。
總結(jié)
以上是生活随笔為你收集整理的毕业设计-电商秒杀系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: angular的几种依赖注入方式
- 下一篇: java信息管理系统总结_java实现科