自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么搶不到口罩?來看看秒殺系統(tǒng)是怎么實現(xiàn)的

運維 數(shù)據(jù)庫運維
今年這波新型冠狀肺炎,對很多公司的后臺系統(tǒng)是一個大考,有一朋友,之前主要做醫(yī)療藥物的云商城,這次服務(wù)也被壓垮了好幾次,幾乎每次口罩、消毒水等物品上架,就被秒殺一空。今天,我們來簡單地討論討論,一個秒殺系統(tǒng)要怎么做。

 今年這波新型冠狀肺炎,對很多公司的后臺系統(tǒng)是一個大考,有一朋友,之前主要做醫(yī)療藥物的云商城,這次服務(wù)也被壓垮了好幾次,幾乎每次口罩、消毒水等物品上架,就被秒殺一空。今天,我們來簡單地討論討論,一個秒殺系統(tǒng)要怎么做。

 

[[315883]]

 

首先我們應(yīng)該了解一下一個口罩秒殺系統(tǒng)是怎么運作的。首先是我們在前端頁面上看到口罩的商品詳情頁,然后這個時候可能有一個計時器,顯示著還未到秒殺時間,然后開始倒數(shù)計時。當(dāng)?shù)竭_(dá)秒殺時間的時候,就有非常多的人開始點擊購買,這些點擊會變成無數(shù)的請求,穿過復(fù)雜的網(wǎng)絡(luò)環(huán)境,到了系統(tǒng)的后臺,一般會先到接入服務(wù)器,接入服務(wù)器校驗完地址后,知道上秒殺的請求,轉(zhuǎn)發(fā)給對應(yīng)的CGI,在CGI層會進(jìn)行一些簡單的檢驗,例如是否是登陸用戶,秒殺的數(shù)量填寫對不對,然后將請求轉(zhuǎn)發(fā)給庫存系統(tǒng),進(jìn)行庫存預(yù)扣,庫存系統(tǒng)會將數(shù)據(jù)寫到數(shù)據(jù)庫里面,然后告訴用戶,秒殺成功。

 

對于一般的業(yè)務(wù),我們通常使用的是直筒型的架構(gòu)設(shè)計,也就是有100個人在前端發(fā)起搶口罩,就有100個人請求到后臺,100個請求到數(shù)據(jù)庫。但是對于這種秒殺這么巨量的業(yè)務(wù),海量的查詢往往可以讓數(shù)據(jù)庫奔潰,所以,我們一般使用漏斗型的架構(gòu)設(shè)計。什么是漏斗型的架構(gòu)設(shè)計呢?就有100萬人同時發(fā)起搶口罩的請求,可能只有10萬人請求到邏輯層,邏輯層再過濾掉一部分人,服務(wù)層再過濾掉一部分人,最后只有1萬個請求到達(dá)數(shù)據(jù)庫,他們都是幸運兒,最終搶到了口罩。

那么怎么去實現(xiàn)這樣的功能呢?通常我們會在客戶端上面就加上保護(hù),首先是防止用戶多次點擊,如果用戶拼命地點擊購買按鈕,那么對后臺的壓力是非常巨大的,所以,我們通常會在用戶多次點擊的時候,實際只往后臺發(fā)送一次請求。接下來,我們可以按照一定的百分比,讓客戶端直接返回失敗,或者提醒用戶在排隊中。低級一點的做法,就是在客戶庫或者頁面生成一個隨機(jī)數(shù),例如這次口罩的備貨只有預(yù)約人的千分之一,那么我們可以生成一個小于1000的數(shù),如果生成的數(shù)小于5,那么就向后臺發(fā)起請求,否則直接失敗。高級一點的做法,是在cnd這樣的邊緣節(jié)點上部署一些簡單的隨機(jī)數(shù)服務(wù),讓一定概率的請求到真正的服務(wù)后臺。這樣,1000個人搶口罩,實際上就只有5個人真正到后臺去搶購了。

 

基于大量的秒殺系統(tǒng)都是這么實現(xiàn)的,所以有很多人有遮掩的感覺,明明我已經(jīng)秒提交了,為什么沒能搶購到口罩呢?這下大家應(yīng)該都明白了吧。歡迎大家關(guān)注我,共同學(xué)習(xí),共同進(jìn)步。大家的支持是我繼續(xù)嘮嗑的動力。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2023-03-26 00:04:14

2022-08-26 10:24:48

架構(gòu)Golang

2022-10-28 17:35:57

架構(gòu)網(wǎng)絡(luò)拓?fù)?/a>

2022-10-24 00:04:57

飛天茅臺架構(gòu)搶購

2022-03-18 09:11:56

高并發(fā)搶購系統(tǒng)架構(gòu)

2020-03-09 09:13:40

HTTPSTCP網(wǎng)絡(luò)協(xié)議

2024-08-13 17:29:24

2021-04-29 22:08:39

Windows 10Windows微軟

2020-08-13 08:17:50

MQ緩沖秒殺

2018-07-27 09:41:45

Linux系統(tǒng)服務(wù)器

2021-06-21 09:04:36

Windows 11系統(tǒng)設(shè)計

2021-12-07 07:01:21

Python病毒 文件

2018-06-21 13:34:52

iPhone手機(jī)疾病

2020-05-20 13:20:45

KubernetesSpark數(shù)據(jù)

2022-12-04 00:09:07

2018-03-15 07:01:02

2020-05-15 09:55:09

設(shè)計技術(shù)棧程序員

2010-07-29 16:44:18

系統(tǒng)管理員系統(tǒng)更新安全補丁

2024-01-15 08:08:27

點贊
收藏

51CTO技術(shù)棧公眾號