標籤:

秒殺系統優化思路

從數據角度看,秒殺難點在哪裡?

qq:一個人讀自己的數據

微博:一個人讀多個人的數據

秒殺系統:多個人讀一份數據

秒殺的架構如下圖所示:

秒殺系統的壓力和瓶頸容易出現在資料庫,所以優化方向有兩個:

1)將請求盡量攔截在系統上游

2)重複利用緩存

客戶端層面:當用戶點擊按鈕之後,按鈕置灰,防止用戶多次提交請求。比如微信搖一搖,並不是每次搖一搖都會向後端發送請求,而是將每隔一段時間之後才會發送請求。

站點層:用戶身份的表示有ip, cookie, uid。這裡可以用uid防止同一個用戶透過客戶端,連續多次發送請求。可以設置同一個uid,每隔5s才能透過請求。至於其他的請求,則返回緩存頁面。

服務層:如果是讀請求,可返回緩存數據;如果是寫請求,則可使用請求隊列。也是為了限流,1K部手機,只透過1K個下單請求去db.

這樣數據層的壓力大大減少了。

參考資料:秒殺系統架構優化思路

推薦閱讀:

螞蟻金服技術專家分享:如何在三年內快速成長為一名技術專家
自助結帳,揭開新零售市場的龐大商機
藍圖系列(一):高並發、高可用、高性能、分散式系統架構
Windows Server 2008 智能 DNS Server 部署指南

TAG:系統架構 |