淘東電商專案(73) 秒殺系統(前端優化

2021-10-06 11:12:11 字數 2114 閱讀 8488

《淘東電商專案》安全架構設計模組的文章已經講解完了,有興趣的童鞋可以閱讀下:

前面安全架構設計,主要介紹了如下幾種:

本文開始講解「秒殺系統模組」,這篇部落格主要講解前端優化這一部分。

l____ 1.什麼是秒殺系統?

l________ 1.1 秒殺介紹

l________ 1.2 秒殺的常見方式

l________ 1.3 秒殺遇到的問題

l________ 1.4 秒殺的解決方案

l____ 2.前端優化

l________ 2.1 前端為什麼要優化?

l________ 2.2 前端優化方案

l________ 2.3 nginx實現頁面快取

「秒殺」網上競拍的一種新方式,所謂「秒殺」,就是網路賣家發布一些超低**的商品,所有買家在同一時間網上搶購的一種銷售方式。由於商品**低廉,往往一上架就被搶購一空,有時只用一秒鐘,其中12306搶票就是乙個秒殺案例。

秒殺搶購的特徵:短時間併發量非常大、高併發

前端層面

突然增加的網路及伺服器頻寬

使用者實現重複提交

業務層面

如何防止商品超賣問題?

伺服器單台機器承受不了?

如何限制使用者操作頻率?

如何防止使用者作弊行為?

正常電子商務流程:

查詢商品;

建立訂單;

扣減庫存;

更新訂單;

付款;賣家發貨。

秒殺業務特性流程:

低廉**;

大幅推廣;

瞬時售空;

一般是定時上架;

時間短、瞬時併發量高;

秒殺實現技術挑戰:

對現有**業務造成衝擊: 秒殺活動只是**營銷的乙個附加活動,這個活動具有時間短,併發訪問量大的特點,如果和**原有應用部署在一起,必然會對現有業務造成衝擊,稍有不慎可能導致整個**癱瘓。

問題1:使用者量逐漸增多,併發量隨著增高,超出了redis吞吐量如何解決?

問題2:當修改商品庫存的請求增多,資料庫訪問壓力增大,如何解決?

問題3: 秒殺系統如果在高併發情況下,造成宕機呢?如何不影響到其他系統?

1m寬頻等於等於128kb/s ,如果載入乙個網頁含靜態資源需要640/kb ,那麼就需要5秒時間載入整個網頁。

想讓使用者的請求及時的傳送到伺服器端上,伺服器頻寬一定足夠,所以這時候**一定要實現動靜分離架構模式,將靜態資源與動態資源分開,靜態資源放入到cdn伺服器端上。

前端的優化方案具體指的是靜態資源優化方案,方式有如下幾種:

js/css/img實現壓縮減少頻寬的傳輸、將靜態資源放入第三方資源伺服器中(例如七牛雲、阿里oss等)。

商品詳情頁面使用nginx+lua+openresty實現商品詳情頁面的優化。

提交後按鈕disabled,禁止使用者重複提交。

1.nginx配置檔案內容如下(nginx埠為7788,系統門戶埠為8080):

}}2.配置檔案下新建資料夾:

mkdir taodong_cachedata
3.瀏覽器使用nginx訪問:可以看到訪問正常,nginx反向**到了門戶系統)

4.關閉門戶系統,再次訪問可以看到訪問的是nginx快取的頁面,由於裡面的動態碼需要訪問門戶後台獲取,因此不顯示。

淘東電商專案(19) 日誌列印

在上一節 淘東電商專案 18 全域性異常捕獲 主要講解如何捕獲全域性異常,並使用日誌列印。本文主要簡單的講解下專案中的日誌框架,淘東電商專案 使用的是slf4j日誌框架。l 1.slf4j日誌 l 1.1 slf4j簡介 l 1.2 slf4j簡單使用 l 2.列印mybatis語句的sql語句 l...

淘東電商專案(01) 需求討論與技術選型

之前曾寫過 網際網路架構 專欄,裡面的知識都比較零散,現在打算把學過的知識串聯起來編寫一套電商專案。眾所周知,目前主流的電商企業就是 和 京東 了,跟個風,本電商專案叫 淘東電商 專案採用目前主流的springboot springcloud來構建,實現一套完整的解決方案。後續文章 都將提交到git...

電商專案專題 一 電商入門

學習電商專案,自然要先了解這個行業,所以我們首先來聊聊電商行業 主要從需求方 盈利模式 技術側重點這三個方面來看它們的不同 各種企業裡面用的管理系統 erp hr oa crm 物流管理系統。而我們今天要聊的就是網際網路專案中的重要角色 電商 近年來,中國的電子商務快速發展,交易額連創新高,電子商務...