快穩炫:電商峰值系統架構三字訣

小雷FansUnion發表於2016-05-02
個人觀察

1.3個基本要求,低時延,高可用,已擴充套件
2.針對前端、後端、網路傳輸分別優化
3.SOA架構,面向服務架構,系統解耦,用非同步代替同步

本文轉載於

《程式設計師》2014年11月刊:電商峰值系統架構設計

原文連結:http://www.csdn.net/article/2014-11-04/2822459

核心思路集中表現為:採用分而治之的思想,大系統小做,小系統大做。
濃縮一下就是三個字:快、穩、炫。

電商峰值系統要滿足三面的要求
1.低時延,系統對資料的處理速度要快;
2.高可用性,故障可及時恢復,對業務影響降到最小;
3.易擴充套件性,可動態新增新的計算節點,不影響線上業務,甚至可以自動做出優化調整。

快——快的目標是確保使用者端快速流暢的體驗。

對前端頁面的處理

  • 將有效期較長的靜態頁面通過CDN(Content Delivery Network,內容分發網路)快取到離使用者最近的服務節點上。
  • 將有效期較短或者需要對失效時間做最大限度控制的靜態頁面,通過類似於Memcache的快取記憶體系統或類似於Squid的反向代理系統快取在服務端。
  • 將混合型頁面(如商品單頁)進行動靜分離,靜態資料(如商品介紹等)快取在本地,動態資料(如可用庫存和促銷價格等)非同步進行載入。

對後端資料的處理

  • 資料庫SQL慢查詢優化。例如,重構相關索引,對where子句進行優化等。
  • 資料庫讀寫分離。例如,MySQL的Master/Slave結構。
  • 資料庫分庫分表。這是減輕單個資料庫伺服器壓力的有效手段,不過同時也會帶來系統的複雜性,是魚和熊掌之間的關係。

對網路傳輸的處理

  • 執行負載均衡,第四層交換按實現分類,分為硬體實現和軟體實現。通過硬體實現一般都由專業的硬體廠商作為商業解決方案提供,如F5等,這些產品非常昂貴,但能夠提供非常優秀的效能和很靈活的管理能力。通過軟體實現,如LVS等,雖然效能比專業硬體稍差,但軟體實現配置起來更靈活。

穩的目標是確保系統端穩定可靠的服務。無論在任何情況下,都要做到儘可能不當機、不出錯。要做到這一點,可以在以下幾個方面做文章。

系統解耦

拆分業務模組和功能模組,使得每個模組都做到高度內聚,然後用SOA,通過嚴格定義模組之間的服務介面,做到模組間的鬆散耦合。在一個模組發生問題時儘可能不影響其他模組的執行,尤其不能影響關鍵業務的執行。同時,可以對單個模組進行橫向擴充套件,尤其是對關鍵的業務模組,以確保關鍵業務一定不能受影響。需要注意的是,模組劃分的粒度應進行權衡,過細的粒度雖然可以帶來更多的靈活性,但也會帶來程式設計的複雜性。

有損服務

根據CAP(Consistency一致性,Availability可用性,Partition Tolerance分割槽容忍性)理論,三者不可得兼。對於電商平臺,其中多數應用並不需要很強的一致性,因此合理的方式是用犧牲部分一致性來換取較高的可用性。

有損服務(服務降級)就是一種提高系統穩定性和可用性的有效實踐。

在電商系統中,要優先保證類目瀏覽、產品單頁和訂單流程能夠執行。

資料庫減負

我們知道資料庫是所有節點中最不容易擴充套件的,複雜的SQL查詢條件會導致資料庫負擔過重,此時可用增加應用計算中間伺服器的方式,通過高效簡潔的SQL查詢,應用計算中間伺服器一次性地從資料庫中取出最小全集的資料行,然後在記憶體中利用演算法剔除冗餘資料,以應用演算法的複雜度換資料庫負擔的方式。

炫的目標是確保業務端實時高效的排程。從日誌收集和實時計算入手,通過對使用者行為資料的視覺化(圖1),及時發現問題和洞察商機,排程應用系統,對使用者多樣化和個性化的需求進行智慧引導。


圖1  使用者行為資料視覺化

審視當下暢想未來,隨著雲端計算的興起和成熟以及智慧移動裝置的普及,電子商務與這兩者深度結合,必將引起一場激動人心的變革。各種裝置上的線上商城將是主流的商業模式,目前分類式的購物體驗平臺將演變成一個高度整合以使用者為中心的全流程價值互動體驗雲平臺。該雲平臺有四大核心組成部分,環環相扣形成一個閉環(圖2)。


圖2  全流程價值互動體驗雲平臺

通過雲屏(TouchApp),打造流連忘返的體驗;

通過雲網(DataLink),提供隨時隨地的服務;

通過雲芯(FansTree),進行細緻入微的洞察;

通過雲播(Broadcast),推送引人入勝的營銷。

相關文章