淘寶因應單月破億筆訂單的 3 個關鍵
關鍵 1
依行銷方針規畫快取策略
配合行銷部門,將熱門銷售頁面與商品資訊置於CDN,減少流回主站的流量。
關鍵 2
主資料庫讀寫分離
讓讀取、寫入分開處理,並單獨設計各自的資料格式及演算法,才能將資料庫的使用效益發揮到最大值。
關鍵 3
適當的服務降級
流量過載時,不要停止服務,而是先暫停邊緣性操作(如查詢購物歷史),讓重要的服務(如確認匯款階段)能順利完成。


阿里巴巴集團商家業務事業部副總裁王文彬於今年臺灣Java開發日,分享了淘寶網去年11月11日順利完成單日1億筆交易的關鍵。

每年11月11日是中國大陸網購平臺淘寶網的行銷節日「光棍節」,2012年,淘寶網與天貓網(以下合稱淘寶)創下了總數超過1億筆,每秒尖峰1萬3千張的訂單量,王文彬表示,淘寶於當日成功寫下零故障、零漏單的成績。最後淘寶以191億元人民幣的成交總額,大幅超過了全美電子商務在「超級星期一」(美國感恩節後的星期一,網購商品常在此時大幅降價)成交總額的132億元。

根據行銷策略,建立彈性化快取機制
王文彬認為,依行銷策略決定快取(Cache)機制非常重要。若使用者的每一筆查詢都要通過主機,則再多的處理器,再大的網路頻寬都不夠用。所以,淘寶除在主機、使用者之間架設CDN(內容傳遞網路,Content Delivery Network)以降低主系統承載量外,也考量了行銷業務及其策略,將當地熱門促銷頁面、和相關的商品資訊等快取於當地的CDN內,讓大部分流量於網路末端就獲得紓解。

王文彬表示,透過CDN分散流量,淘寶網能將流回主站的流量降低至總流量的十分之一,大幅降低了主站添購軟硬體系統的成本,並降低系統過載的可能性,另外,也能藉由從在地提供快取,更迅速地回應使用者的網頁要求(HTTP Request),來提升使用經驗。

令外,王文彬也表示,讀寫分離的資料庫設計,也是即時資料處理的重要手段。由於資料寫入需考慮資料一致性的問題,例如使用者修改基本資料等,就必須確保不會有兩個不同時的版本,其所需付出的傳輸、計算與驗證成本,都遠比讀取資料還要多,因此,將資料庫設計成讀寫分離,並依其不同操作需要制定各別的資料格式、資料演算法,能將資料庫的使用效益發揮到最大。

流量過載時實施服務降級,而非停止服務
但是即使有了快取機制、讀寫分離,面對即時、爆量的訂單,仍然很可能出現系統、網路過載的情況。王文彬認為,在這種情形下,若讓伺服器直接切斷過載的連線,甚至顯示「404 Not Found」這樣的HTTP回應訊息給使用者,將會嚴重打擊到企業形象。

所以,淘寶的作法是實施服務降級,而非停止服務。所謂服務降級,指的是漸進式地停止邊緣性服務,而確保核心交易流程的可用性,例如當流量過載時,應先暫停使用者查詢購物歷史或修改基本資料的功能、而讓正在結帳階段的使用者,能夠完成目前的操作程序,不會按下了「確認匯款」,才發現網站當機,因為一旦網站在這樣的敏感環節出錯,使用者將會嚴重質疑系統,乃至於企業本身的可靠性。

但另一方面,王文彬也補充,網路購物的付款與驗證,會牽涉到銀行等第三方付款系統,面對即時的大量訂單,即使淘寶內部處理機制設置完善,仍必須面對外部系統(淘寶至銀行間傳輸、以及銀行本身處理速度)的過載情況,這仍是淘寶的一大挑戰。

考量使用者行為,因應最終一致性問題
由於網購平臺上存在著巨大的使用者數以及訂單量,許多資訊的更新無法及時達成,常會產生分散式計算裡,所謂最終一致性(Eventual Consistency)的問題。對此,王文彬表示,淘寶參照了使用者慣常行為,並針對不同應用嚴謹度的要求,決定傳輸、運算資源配置與回應的優先順序,例如,使用者通常不會在下完單後,又立刻改單,因此,訂單資訊只要在500毫秒內達成資訊同步,並不會影響使用者經驗。

捨棄IOE體系,投向PC架構和開源碼軟體
而在系統與軟體的選擇上,王文彬表示,相較於PC平臺系統,IOE(IBM、Oracle、EMC)體系雖然較穩定,然而其建置、維護成本也都高出許多,同時相較於PC,也不易因應新需求做出客製化的服務,因此他認為IOE體系較適合企業內部使用,而在企業的Web應用上,則較缺乏彈性。

因此,淘寶決定採用PC平臺搭配眾多開源碼軟體、MySQL來部署後端系統,以能在面對不同應用、即時大流量的挑戰下,更彈性地改變硬體配置模式,以及其相應演算法。文⊙楊智傑

熱門新聞

Advertisement