秒殺系統優化思路
05-07
從數據角度看,秒殺難點在哪裡?
qq:一個人讀自己的數據
微博:一個人讀多個人的數據
秒殺系統:多個人讀一份數據
秒殺的架構如下圖所示:
秒殺系統的壓力和瓶頸容易出現在資料庫,所以優化方向有兩個:
1)將請求盡量攔截在系統上游
2)重複利用緩存
客戶端層面:當用戶點擊按鈕之後,按鈕置灰,防止用戶多次提交請求。比如微信搖一搖,並不是每次搖一搖都會向後端發送請求,而是將每隔一段時間之後才會發送請求。
站點層:用戶身份的表示有ip, cookie, uid。這裡可以用uid防止同一個用戶透過客戶端,連續多次發送請求。可以設置同一個uid,每隔5s才能透過請求。至於其他的請求,則返回緩存頁面。
服務層:如果是讀請求,可返回緩存數據;如果是寫請求,則可使用請求隊列。也是為了限流,1K部手機,只透過1K個下單請求去db.
這樣數據層的壓力大大減少了。
參考資料:秒殺系統架構優化思路
推薦閱讀:
※螞蟻金服技術專家分享:如何在三年內快速成長為一名技術專家
※自助結帳,揭開新零售市場的龐大商機
※藍圖系列(一):高並發、高可用、高性能、分散式系統架構
※Windows Server 2008 智能 DNS Server 部署指南
TAG:系統架構 |