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