国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺談秒殺系統架構設計

maochunguang / 2322人閱讀

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

秒殺是電子商務網站常見的一種營銷手段。

原則

不要整個系統宕機。

即使系統故障,也不要將錯誤數據展示出來。

盡量保持公平公正。

實現效果

秒殺開始前,搶購按鈕為活動未開始。

秒殺開始時,搶購按鈕可以點擊下單。

秒殺結束后,按鈕按鈕變成秒殺已結束。

技術攻關

短時間內的大訪問量對現有網站業務造成的沖擊。

秒殺是一個網站營銷的一個附加活動,時間短,并發量大。

如果和網站原有應用部署在一起,必然會對現有業務造成沖擊,稍有不慎可能導致整個網站癱瘓。

高并發下對服務器數據庫造成的極大負載壓力。

用戶秒殺開始前,通過不斷刷新瀏覽器來保證不會錯過秒殺活動。

頻繁的訪問程序、數據庫會對應用服務器和數據庫服務器造成負載壓力。

網絡帶寬的問題比超過平時好多倍。

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

這些網絡帶寬是因為秒殺活動新增的,超過網站平時使用的帶寬。

避免直接下單。

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

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

應對策略

秒殺系統獨立部署

為了避免短時間內的大訪問量對現有網站業務造成的沖擊,可以將秒殺系統獨立部署。

如果需要還可以使用獨立域名,使其與網站完全隔離。

即使秒殺系統崩潰了,也不會對網站造成影響。

秒殺商品頁面靜態化

將商品描述、參數、詳情,全部寫到一個靜態頁面,不用進行程序的邏輯處理,不需訪問數據庫。

不用部署動態的服務器和數據庫服務器。

租借秒殺活動的網絡帶寬

因為秒殺新增的網絡帶寬,必須和運營商重新購買或租借帶寬。

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

動態生成隨機下單頁面的URL

為了避免用戶直接訪問下單URL,需要將URL動態化,用隨機數作為參數,只能秒殺開始的時候才生成。

架構設計

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

購買按鈕只有在秒殺開始的時候才能點亮,在此之前是灰色的,顯示活動未開始。

如果頁面是動態生成的,每次刷新都要請求服務器,那么勢必造成服務端的負載壓力。

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

但是這樣,秒殺開始時,用戶刷新頁面,根本請求不到應用服務器。

解決方案:

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

該JS的作用是,包含秒殺開始標志,修改樣式,生成下單頁面的URL及隨機參數。

該JS文件不被緩存的做法:xxx.js?v=隨機數。

會有一臺服務器進行監控(定時上下架):

當秒殺活動開始時推送該文件。

當秒殺活動結束時推送文件,標示結束標志,修改樣式。

如下圖。

淺談秒殺系統架構設計-1

如何只允許,第一個提交的單進入訂單系統。

由于秒殺到商品的用戶只有一個,因此需要在提交訂單時,進行下單前置檢查。

如果已經有訂單提交成功,表示活動結束,進入秒殺結束頁面。

事實上,訂單數只能有一個,為了減輕下單頁面服務器的負載壓力,可以控制進入下單頁面的入口。

只有少數用戶能進入下單頁面,其他用戶直接進入秒殺結束頁面。

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

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

  如果未超過10條,則用戶可進入填寫訂單及確認頁面。

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

  已超過秒殺商品總數,返回秒殺結束頁面。

  未超過秒殺商品總數,提交到子訂單系統。

  如下圖。

淺談秒殺系統架構設計-2

減庫存的操作

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

付款減庫存

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

文章借鑒書籍《大型網站技術架構》。

推薦閱讀

系統的講解 - SSO 單點登錄

系統的講解 - PHP WEB 安全防御

系統的講解 - PHP 緩存技術

系統的講解 - PHP 接口簽名驗證

系統的講解 - PHP 浮點數高精度運算


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21960.html

相關文章

  • 架構 - 收藏集 - 掘金

    摘要:淺談秒殺系統架構設計后端掘金秒殺是電子商務網站常見的一種營銷手段。這兩個項目白話網站架構演進后端掘金這是白話系列的文章。 淺談秒殺系統架構設計 - 后端 - 掘金秒殺是電子商務網站常見的一種營銷手段。 不要整個系統宕機。 即使系統故障,也不要將錯誤數據展示出來。 盡量保持公平公正。 實現效果 秒殺開始前,搶購按鈕為活動未開始。 秒殺開始時,搶購按鈕可以點擊下單。 秒殺結束后,按鈕按鈕變...

    Riddler 評論0 收藏0
  • 【推薦】最新200篇:技術文章整理

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

    BicycleWarrior 評論0 收藏0
  • 【推薦】最新200篇:技術文章整理

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

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

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

    CodeSheep 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<