讀《小公尺網搶購系統開發實踐》有感

2022-08-12 21:03:17 字數 1124 閱讀 5229

這周我們來學習一下小公尺的搶購系統開發實踐。

小公尺公司在2023年8月16日首次發布了手機,立刻引起了市場轟動。隨後,在一天多的時間內預約了30萬台。之後的幾個月,這30萬台小公尺手機通過排號的方式依次發貨,到當年年底全部發完。

然後便是開放購買。最初的開放購買直接在小公尺的**系統上進行,但我們那時候完全低估了「搶購」的威力。瞬間爆發的平常幾十倍流量迅速淹沒了小公尺網**伺服器,資料庫死鎖、網頁重新整理超時,使用者購買體驗非常差。

市場需求不等人,一周後又要進行下一輪開放搶購。一場風暴就等在前方,而我們只有一周的時間了,整個開發部都承擔著巨大的壓力。

小公尺網可以採用的常規優化手段並不太多,增加頻寬、伺服器、尋找**中的瓶頸點優化**。但是,小公尺公司只是一家剛剛成立一年多的小公司,沒有那麼多的伺服器和頻寬。而且,如果**中有瓶頸點,即使能增加一兩倍的伺服器和頻寬,也一樣會被瞬間爆發的幾十倍負載所沖垮。而要優化**的**,時間上已沒有可能。電商**很複雜,說不定某個不起眼的次要功能,在高負載情況下就會成為瓶頸點拖垮整個**。

擺在小公尺面前的是一道似乎無解的難題,它要達到的目標如下:

設計方案就是多個限制條件下求得的解。時間、可靠性、成本,這是我們面臨的限制條件。要在那麼短的時間內解決難題,必須選擇最簡單可靠的技術,必須是經過足夠驗證的技術,解決方案必須是最簡單的。

在高併發情況下,影響系統效能的乙個關鍵因素是:資料的一致性要求。在前面所列的目標中,有兩項是關於資料一致性的:商品剩餘數量、使用者是否已經搶購成功。如果要保證嚴格的資料一致性,那麼在集群中需要乙個中心伺服器來儲存和操作這個值。這會造成效能的單點瓶頸。

在分布式系統設計中,有乙個cap原理。「一致性、可用性、分割槽容忍性」三個要素最多只能同時實現兩點,不可能三者兼顧。小公尺要面對極端的爆發流量負載,分割槽容忍性和可用性會非常重要,因此決定犧牲資料的強一致性要求。

做出這個重要的決定後,剩下的設計決定就自然而然地產生了:

1. 技術上要選擇最可靠的,因為團隊用php的居多,所以系統使用php開發;

2. 搶資格過程要最簡化,使用者只需點乙個搶購按鈕,返回結果表示搶購成功或者已經售罄;

3. 對搶購請求的處理盡量簡化,將i/o操作控制到最少,減少每個請求的時間;

4. 盡量去除效能單點,將壓力分散,整體效能可以線性擴充套件;

5. 放棄資料強一致性要求,通過非同步的方式處理資料。

小公尺手機之搶購背後

小公尺可謂飢餓營銷的集大成者,並以此在市場初期得以迅速發展。當雷軍在發布會上信誓旦旦的說,小公尺手機5現貨購買時,我信了。而後的小公尺max發布會上,雷軍又說,小公尺max也是現貨時,我又信了。到現在如夢初醒,原來真是 限 貨啊!梳理小公尺兩年多來的營銷,我們可以發現這樣一條簡單規律 產品發布 消費...

小公尺搶購神器 開放原始碼

我原本想要開發乙個小公尺搶購神器,為什麼呢?因為尼瑪的小公尺產品太難搶了,迫不得已逼我祭出自己的絕活。於是乎,馬上自己動手開發乙個,打算給自己搶個小公尺電視,小公尺路由器,小公尺3 td,小公尺機頂盒,小公尺移動電源的,把小公尺家族產品全部買齊,這些真的很划算啊,低 高配置,超具價效比。剛搞完自動登...

小公尺 雷軍進軍私募系誤讀

techweb 12月17日,小公尺官方微博發布訊息稱,發現網路有 雷軍進軍私募 報道,其中存在誤讀。相關傳言中提及的小公尺私募股權 管理 實為小公尺產業 的配套管理公司,主要致力於產業投資,助推中國製造業在先進製造 智慧型制程式設計客棧造等產業發展。並非另行籌畫新 業務。隨後小公尺王化在微博補充稱...