1、搶購業務分析前端
(1) 低廉的價格mysql
(2) 大幅推廣react
(3) 瞬間售空nginx
(4) 定時上架,定時結束redis
(5) 併發量高sql
(1) 對現有業務的衝擊數據庫
(2) 高併發的環境下,數據庫負擔後端
(3) 高併發狀況下網絡的波動緩存
(4) 前端對數據顯示的處理服務器
(5) 產品定時上架的處理
(6) 庫存的「超賣」現象
(7) 秒殺器的應對
減輕後端數據層,數據讀取的壓力,防止服務器輕易掛掉
減小數據庫的讀取次數
採用先後端分離的模式,後端只提供數據的操做,不負責前端頁面的處理。採用RESTful API爲前端提供數據,或者修改數據。前端採用react技術開發SPA單頁應用,分離先後端,解耦系統,提升系統的穩定性和健壯性。採用nginx做爲前端也後端交接的中轉站,實現代理和負載均衡,減輕後臺的請求靜態資源,提升系統總體的穩定性。
(1) 採用nginx和CDN作反向代理,快速響應來自於全國各地的請求,從而解決網絡帶寬的瓶頸。
(2) 倒計時的問題,因爲客服端時間和服務器時間不一致,會致使搶購失敗或者提早搶購。因此採用每隔一段時間,進行先後端時鐘的同步。
(3) 當時間未到的時候,前端進行請求的攔截,採用節流的方式禁止前端在未開始時發送無效的請求。
(1) 在請購的API接口,實現一個搶購隊列,放在「插隊」行爲。
(2) 採用mysql進行數據的存儲,採用redis進行數據的緩存,在搶購開始的時,從mysql數據庫中讀取一次數據,把讀取到的商品信息保存在redis緩存中,當每次執行搶購的時,從redis中讀取商品信息,並修改相應庫存,減輕mysql數據庫的頻繁讀寫。
(3) 在搶購成功過之後,若是用戶在20分鐘以內爲付款則,商品從新進入搶購隊列中進行搶購。
添加搶購商品流程:
前端搶購流程
後端處理數據流程