如何設計一個秒殺系統-許令波-極客時間

小猿發表於2019-04-26

極客時間出品的《如何設計一個秒殺系統》由許令波所作,許令波是前阿里巴巴高階技術專家。本專欄希望帶你透徹理解秒殺系統的各個關鍵技術點,希望你在學完之後,能夠快速搭建一套滿足自己業務場景的高可用秒殺系統。而更多的是,我們希望藉助“秒殺”這個網際網路高併發場景中的典型代表,帶你瞭解如何打造一個超大流量併發讀寫、高效能,以及高可用的系統架構。

《如何設計一個秒殺系統》封面圖

《如何設計一個秒殺系統》講師介紹

許令波,花名“君山”,2009年加入淘寶,一直關注效能優化領域,經歷了淘寶PV從1億到50億的發展歷程,參與了淘寶高訪問量Web系統模板引擎的改造、靜態化、無線化、CDN等優化改造專案。任職期間,他一直參與淘寶高訪問量的系統頁面詳情繫統的優化工作,設計並實現了sketch模板引擎將服務端效能提升近30%左右。

《如何設計一個秒殺系統》作者許令波

“秒殺”,就是在同一個時刻有大量請求爭搶購買同一個商品,並完成交易的過程,其間涉及大量的併發讀和併發寫,並要求高可靠和高效能的系統支援。

也因此,“秒殺”對於程式設計師來講也意味著巨大的挑戰。如何讓系統面對百萬級的請求流量不出故障?如何保證高併發情況下資料的一致性寫?如何在不堆伺服器的情況下應對是平時數百上千倍的併發訪問?如何分別針對大流量的讀寫請求進行服務端的極致優化?你都將在這個專欄裡找到答案。

《如何設計一個秒殺系統》專欄模組

本專欄共7期,分為三大模組。

高效能。秒殺涉及大量的併發讀和併發寫,因此支援高併發訪問這點非常關鍵。本專欄將從設計資料的動靜分離方案、熱點的發現與隔離、請求的削峰與分層過濾、服務端的極致優化這4個方面重點介紹。

一致性。秒殺中商品減庫存的實現方式同樣關鍵。可想而知,有限數量的商品在同一時刻被很多倍的請求同時來減庫存,減庫存又分為“拍下減庫存”“付款減庫存”以及預扣等幾種,在大併發更新的過程中都要保證資料的準確性,其難度可想而知。因此,我將用一篇文章來專門講解如何設計秒殺減庫存方案。

高可用。雖然我介紹了很多極致的優化思路,但現實中總難免出現一些我們考慮不到的情況,所以要保證系統的高可用和正確性,我們還要設計一個PlanB來兜底,以便在最壞情況發生時仍然能夠從容應對。專欄的最後,我將帶你思考可以從哪些環節來設計兜底方案。

《如何設計一個秒殺系統》課程目錄

開篇詞 | 秒殺系統架構設計都有哪些關鍵點?

01 | 設計秒殺系統時應該注意的5個架構原則

秒殺系統整體的架構設計思路

“4要1不要”原則

不同場景下的不同架構案例

02 | 如何才能做好動靜分離?有哪些方案可選?

什麼是靜態資料和動態資料

如何做動靜分享的改造

動靜分離的幾種架構方案

03 | 二八原則:有針對性地處理好系統的“熱點資料”

什麼是“熱點”:熱點操作的熱點資料

實現一個動態熱點的系統

思路:優化、限制、隔離

04 | 流量削峰這事應該怎麼做?

什麼是流量削峰

佇列緩衝、秒殺答題、分層過濾

具體的實現細節

05 | 影響效能的因素有哪些?又該如何提高系統的效能?

影響效能的因素

如何發現瓶頸

如何優化系統

06 | 秒殺系統“減庫存”設計的核心邏輯

常見的幾種減庫存方案

減庫存的最優實現方式

其中的坑以及關鍵優化點

07 | 準備Plan B:如何設計兜底方案?

如何才能保證系統的高可用

降級、限流、拒絕服務的核心邏輯

08 | 答疑解惑:快取失效的策略應該怎麼定?

訂閱價格:

為回報猿人學的粉絲,所有通過我分享的二維碼購買的使用者,請加我微訊號:dismissmewp,備註:返現。

享受完其它優惠後,我再給大家立即返¥12元現金。

 

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章