亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

淺談秒殺系統(tǒng)架構(gòu)設(shè)計(jì)

maochunguang / 2386人閱讀

摘要:動(dòng)態(tài)生成隨機(jī)下單頁面的為了避免用戶直接訪問下單需要將動(dòng)態(tài)化,用隨機(jī)數(shù)作為參數(shù),只能秒殺開始的時(shí)候才生成。該文件不被緩存的做法隨機(jī)數(shù)。淺談秒殺系統(tǒng)架構(gòu)設(shè)計(jì)如何只允許,第一個(gè)提交的單進(jìn)入訂單系統(tǒng)。未超過秒殺商品總數(shù),提交到子訂單系統(tǒng)。

秒殺是電子商務(wù)網(wǎng)站常見的一種營銷手段。

原則

不要整個(gè)系統(tǒng)宕機(jī)。

即使系統(tǒng)故障,也不要將錯(cuò)誤數(shù)據(jù)展示出來。

盡量保持公平公正。

實(shí)現(xiàn)效果

秒殺開始前,搶購按鈕為活動(dòng)未開始。

秒殺開始時(shí),搶購按鈕可以點(diǎn)擊下單。

秒殺結(jié)束后,按鈕按鈕變成秒殺已結(jié)束。

技術(shù)攻關(guān)

短時(shí)間內(nèi)的大訪問量對現(xiàn)有網(wǎng)站業(yè)務(wù)造成的沖擊。

秒殺是一個(gè)網(wǎng)站營銷的一個(gè)附加活動(dòng),時(shí)間短,并發(fā)量大。

如果和網(wǎng)站原有應(yīng)用部署在一起,必然會(huì)對現(xiàn)有業(yè)務(wù)造成沖擊,稍有不慎可能導(dǎo)致整個(gè)網(wǎng)站癱瘓。

高并發(fā)下對服務(wù)器數(shù)據(jù)庫造成的極大負(fù)載壓力。

用戶秒殺開始前,通過不斷刷新瀏覽器來保證不會(huì)錯(cuò)過秒殺活動(dòng)。

頻繁的訪問程序、數(shù)據(jù)庫會(huì)對應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器造成負(fù)載壓力。

網(wǎng)絡(luò)帶寬的問題比超過平時(shí)好多倍。

如果秒殺頁面的大小為200K,如果最大并發(fā)數(shù)為10000次,那么需要的網(wǎng)絡(luò)和服務(wù)器帶寬是2G(200K×10000)。

這些網(wǎng)絡(luò)帶寬是因?yàn)槊霘⒒顒?dòng)新增的,超過網(wǎng)站平時(shí)使用的帶寬。

避免直接下單。

秒殺的游戲規(guī)則是到了秒殺才能開始對商品下單購買,在此時(shí)間點(diǎn)之前,只能瀏覽信息不可下單。

而下單頁面也是一個(gè)普通的URL,如果得到這個(gè)URL,不用等到秒殺開始就可以下單了。

應(yīng)對策略

秒殺系統(tǒng)獨(dú)立部署

為了避免短時(shí)間內(nèi)的大訪問量對現(xiàn)有網(wǎng)站業(yè)務(wù)造成的沖擊,可以將秒殺系統(tǒng)獨(dú)立部署。

如果需要還可以使用獨(dú)立域名,使其與網(wǎng)站完全隔離。

即使秒殺系統(tǒng)崩潰了,也不會(huì)對網(wǎng)站造成影響。

秒殺商品頁面靜態(tài)化

將商品描述、參數(shù)、詳情,全部寫到一個(gè)靜態(tài)頁面,不用進(jìn)行程序的邏輯處理,不需訪問數(shù)據(jù)庫。

不用部署動(dòng)態(tài)的服務(wù)器和數(shù)據(jù)庫服務(wù)器。

租借秒殺活動(dòng)的網(wǎng)絡(luò)帶寬

因?yàn)槊霘⑿略龅木W(wǎng)絡(luò)帶寬,必須和運(yùn)營商重新購買或租借帶寬。

為了減輕服務(wù)器的壓力,需要將秒殺商品頁面緩存在CDN,同樣CDN服務(wù)器也需要臨時(shí)租借帶寬。

動(dòng)態(tài)生成隨機(jī)下單頁面的URL

為了避免用戶直接訪問下單URL,需要將URL動(dòng)態(tài)化,用隨機(jī)數(shù)作為參數(shù),只能秒殺開始的時(shí)候才生成。

架構(gòu)設(shè)計(jì)

如何控制秒殺商品頁面搶購按鈕的可用/禁用。

購買按鈕只有在秒殺開始的時(shí)候才能點(diǎn)亮,在此之前是灰色的,顯示活動(dòng)未開始。

如果頁面是動(dòng)態(tài)生成的,每次刷新都要請求服務(wù)器,那么勢必造成服務(wù)端的負(fù)載壓力。

如果頁面是靜態(tài)頁面的話,可以將頁面緩存在CDN,反向代理服務(wù)器上,甚至用戶瀏覽器上。

但是這樣,秒殺開始時(shí),用戶刷新頁面,根本請求不到應(yīng)用服務(wù)器。

解決方案:

使用JS腳本控制,在頁面中引用一個(gè)JS文件(文件極小),但是該文件不要被緩存。

該JS的作用是,包含秒殺開始標(biāo)志,修改樣式,生成下單頁面的URL及隨機(jī)參數(shù)。

該JS文件不被緩存的做法:xxx.js?v=隨機(jī)數(shù)。

會(huì)有一臺(tái)服務(wù)器進(jìn)行監(jiān)控(定時(shí)上下架):

當(dāng)秒殺活動(dòng)開始時(shí)推送該文件。

當(dāng)秒殺活動(dòng)結(jié)束時(shí)推送文件,標(biāo)示結(jié)束標(biāo)志,修改樣式。

如下圖。

淺談秒殺系統(tǒng)架構(gòu)設(shè)計(jì)-1

如何只允許,第一個(gè)提交的單進(jìn)入訂單系統(tǒng)。

由于秒殺到商品的用戶只有一個(gè),因此需要在提交訂單時(shí),進(jìn)行下單前置檢查。

如果已經(jīng)有訂單提交成功,表示活動(dòng)結(jié)束,進(jìn)入秒殺結(jié)束頁面。

事實(shí)上,訂單數(shù)只能有一個(gè),為了減輕下單頁面服務(wù)器的負(fù)載壓力,可以控制進(jìn)入下單頁面的入口。

只有少數(shù)用戶能進(jìn)入下單頁面,其他用戶直接進(jìn)入秒殺結(jié)束頁面。

(前置檢查邏輯)檢查本機(jī)已處理的下單請求數(shù)目:

  如果超過10條,直接返回已結(jié)束頁面給用戶。

  如果未超過10條,則用戶可進(jìn)入填寫訂單及確認(rèn)頁面。

(前置檢查邏輯)檢查全局已提交訂單數(shù)目:

  已超過秒殺商品總數(shù),返回秒殺結(jié)束頁面。

  未超過秒殺商品總數(shù),提交到子訂單系統(tǒng)。

  如下圖。

淺談秒殺系統(tǒng)架構(gòu)設(shè)計(jì)-2

減庫存的操作

拍下減庫存(用戶體驗(yàn)好)

付款減庫存

下訂單盡可能簡單,購買數(shù)據(jù)為1且不可編輯,送貨地址和付款方式為空或用戶默認(rèn),允許訂單提交后修改。

文章借鑒書籍《大型網(wǎng)站技術(shù)架構(gòu)》。

推薦閱讀

系統(tǒng)的講解 - SSO 單點(diǎn)登錄

系統(tǒng)的講解 - PHP WEB 安全防御

系統(tǒng)的講解 - PHP 緩存技術(shù)

系統(tǒng)的講解 - PHP 接口簽名驗(yàn)證

系統(tǒng)的講解 - PHP 浮點(diǎn)數(shù)高精度運(yùn)算


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/21960.html

相關(guān)文章

  • 架構(gòu) - 收藏集 - 掘金

    摘要:淺談秒殺系統(tǒng)架構(gòu)設(shè)計(jì)后端掘金秒殺是電子商務(wù)網(wǎng)站常見的一種營銷手段。這兩個(gè)項(xiàng)目白話網(wǎng)站架構(gòu)演進(jìn)后端掘金這是白話系列的文章。 淺談秒殺系統(tǒng)架構(gòu)設(shè)計(jì) - 后端 - 掘金秒殺是電子商務(wù)網(wǎng)站常見的一種營銷手段。 不要整個(gè)系統(tǒng)宕機(jī)。 即使系統(tǒng)故障,也不要將錯(cuò)誤數(shù)據(jù)展示出來。 盡量保持公平公正。 實(shí)現(xiàn)效果 秒殺開始前,搶購按鈕為活動(dòng)未開始。 秒殺開始時(shí),搶購按鈕可以點(diǎn)擊下單。 秒殺結(jié)束后,按鈕按鈕變...

    Riddler 評(píng)論0 收藏0
  • 【推薦】最新200篇:技術(shù)文章整理

    摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動(dòng)化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯(cuò)過的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...

    BicycleWarrior 評(píng)論0 收藏0
  • 【推薦】最新200篇:技術(shù)文章整理

    摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動(dòng)化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯(cuò)過的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...

    tommego 評(píng)論0 收藏0
  • 一年,近8w訪問量,碼云 Star 4k+

    摘要:幾個(gè)月后,申請了碼云的通過了。隨著年齡的增長,你會(huì)覺得技術(shù)不再是第一位,技術(shù)永遠(yuǎn)是為業(yè)務(wù)來服務(wù)的。 showImg(https://segmentfault.com/img/bVbuy3x?w=720&h=405); 2019年已過去大半年,差不多也是這個(gè)時(shí)候,提交了分布式秒殺系統(tǒng)的第一版,查看了一下提交記錄,居然是2018年5月12日。 對于我來說,這個(gè)項(xiàng)目可能就是個(gè)偶然,你想想一個(gè)...

    CodeSheep 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<