秒殺業務的特點就是多個人讀乙個資料,難點就是讀寫衝突,鎖情況特別的嚴重。 所以我們盡量不要讓請求落在資料庫上去,讓請求攔截在系統的上游。解決思路:
1、限流:遮蔽掉無用的流量,允許少部分流量流向後端。
2、削峰:瞬時大流量峰值容易壓垮系統。常用的消峰方法有非同步處理、快取和訊息中介軟體等技術
前端優化
1、前端靜態資源快取,頁面靜態化和使用cdn快取或redis快取
2、限流:1使用驗證碼防止機械人爬蟲指令碼自動提交2禁止重複提交,使用者提交後按鈕置灰
後端優化
1、利用負載均衡,使用多個機器處理併發請求
2、秒殺開始前,前台不能得到秒殺位址,防止提前得到秒殺位址,模擬秒殺請求
3、限制同乙個使用者id訪問頻率
4、限制同一時間請求次數,達到請求上限時,隨機拒絕部分請求來保證服務可用
5、業務分離,將秒殺系統和其它業務分離,單獨放在高配機器上,防止影響其它業務系統
6、將秒殺請求放入到訊息佇列佇列,後台訂閱訊息減庫存,檢測訊息佇列長度,達到最大庫存不加訊息佇列,直接返回秒殺失敗的訊息
7、利用快取應對讀請求,利用快取減輕資料庫壓力
8、利用快取應對寫請求,將資料庫的庫存資料轉到redis裡面,所有減庫存操作都在redis裡面進行,然後通過後台程序把redis裡面的使用者秒殺請求同步到資料庫
秒殺多執行緒面試題系列文章
文章 morewindows的部落格,再次特別註明。1 秒殺多執行緒第一篇 多執行緒筆試面試題彙總 2 秒殺多執行緒第二篇 多執行緒第一次親密接觸 createthread與 beginthreadex本質區別 3 秒殺多執行緒第三篇 原子操作 interlocked系列函式 4 秒殺多執行緒第四篇...
面試 秒殺系統
在進行系統設計的過程中,首先問題場景的特點。秒殺系統是十分典型的高併發場景,其特點也十分顯著 高併發 低庫存 高瞬時流量。再者分析整個系統的輸入輸出,即大概的 api 閘道器擁有的功能 查 使用者查詢商品資訊 改 使用者購買商品 將系統的特點和功能分析完畢後,就可以根據這些資訊進行系統設計。乙個常規...
面試題 設計instagram
約束high level db design 詳細設計 擴充套件資訊流設計 使用者可以上傳 分享 關注其他人,亦可以看到自己的和好友的top 功能性 根據名稱搜尋 使用者關注他人 生成和展示資訊流,包含所有關注的人的top 非功能性 5.高可用 6.低時延 資訊流產生時延 200ms 7.ap系統 ...