秒殺系統分析

kingmax54212008發表於2020-11-27

 

 

秒殺系統分析

 

雖然說是雙十一,但是當下技術挑戰更強還是以直播居多,以當下最火的直播秒殺為例,假設是某個主播準備開一個秒殺產品,觀看直播的有三百萬線上,需要考慮到以下幾個方面:

 

  1. 及時增加的網路及伺服器頻寬,不論是圖片資源還是文字,瞬間十萬的點選,想必對寬頻的要求巨高。

  2. 如何控制秒殺商品頁面購買按鈕的點亮與置灰?頁面的是設計為動態修改還是直接靜態?

  3. 設定好定時秒殺,如果賣家或者主播在秒殺前對商品做編輯,帶來的影響會如何處理?

  4. 如何保證成功秒殺到商品,使用者只有一個,不會產生超賣?

 

這裡有個有意思的點,看李佳琦的直播秒殺順暢度要比羅永浩羅老師的直播間高太多。順著思路,背後的技術實力,可以做一個小小對比。

順著思路,可以設計一個簡單的架構:

 

 

 

 

秒殺系統設計 

這裡我們可以對系統設計分為兩個階段:

 

  • 第一階段:秒殺開始前到秒殺開始, 使用者在準備階段等待秒殺;

  • 第二階段:秒殺開始到獲得秒殺結果

 

第二階段,這裡就涉及到三個點:

 

  • 高效能:  如何支撐高併發,如何抵抗高 IOPS?

  • 一致性:有限的商品在同一時間被多個請求同時扣減,而且要保證準確性,如何做到不多不少?

  • 高可用:業務流量的激增、依賴服務穩定性與物理資源的瓶頸如何處理? 

秒殺系統架構上的問題 

  • 如何保證資料的可用性?

  • 如何保證資料庫“讀”高可用?

  • 冗餘讀庫帶來的副作用?讀寫有延時,可能不一致。如何保證資料庫“寫”高可用?

  • 如何保證一致性?

  • 如何提高資料庫的擴充套件性?

  • 高併發下的資料安全如何保證?

  • 如何預防和麵對突發問題,系統設計時應該從哪些方面著手?

 

除去技術的問題,還有安全問題如何避免?上述的問題基本都是秒殺系統問題的難點,不過網上的資料還是比較繁雜,後面我試著找一些系統的課程學習。這裡我推薦滴滴出行高階專家工程師劉忠旭講的《大廠電商Java秒殺系統架構實戰》,從基礎的設計到時間,系統的講解大廠電商秒殺系統架構方方面面。  

 

 

初入職場,很多小夥伴反饋說,高併發學了那麼久,但是在真正做專案時,仍然不知道如何下手處理高併發業務場景!甚至很多小夥伴仍然停留在只是簡單的提供介面(CRUD)階段,不知道學習的併發知識如何運用到實際專案中,就更別提如何構建高併發系統了!

 

其實重點是轉換思維方式,從簡單的提供介面(CRUD)階段,如何踏入系統架構設計的領域

 

  • 如何保障系統高可用?

  • 能否講清楚系統面臨哪些技術挑戰和業務挑戰?

 

本課程從秒殺場景出發,分為基礎篇進階篇架構篇 3 部分

 

  • 基礎篇重點在於實現功能(導購、交易)

  • 進階篇重點突破超賣、突發流量給系統帶來的挑戰,高併發銀彈,快取如何使用;

  • 架構篇重點講解如何保障系統高可用(方法論+最佳實踐)

 

 

 

案例介紹

 

 

 

  • 營銷體系

  • 超賣解決方案

  • 多級快取解決方案

  • 商品模型設計

  • 交易平臺架構設計

  • 電商架構高可用設計

 

你能學到什麼

通過秒殺這個典型的高併發場景,徹底搞明白高併發系統該如何設計。

  • Spring Boot 整合 (guava, caffeine,redisson, mybatis-plus, druid, Lombok, swagger2)等等

  • 徹底解決超賣、多級快取設計、限流實現

  • 高可用架構設計 

適用行業 

  • 社群電商、團購、網際網路新零售,電商平臺

相關文章