網易考拉海購:電商高並發架構設計的鐵律


本文由  網易雲 發布。

 

網易考拉海購已順利度過了 2017 年的雙十一、雙十二等大促活動,銷售額達到了 2016 年的四倍。那么,在技術架構層面,考拉是如何支持如此快速發展的業務呢?網易考拉海購首席架構師謝騁超為您解密《網易雲上的第一跨境電商技術架構》。

網易考拉海購首席架構師 謝騁超

和很多互聯網業務一樣,考拉剛開始的架構非常簡單,只有線上、線下、管理、后台和緩存服務,更多考慮的是實現業務功能,並沒有太多的考慮服務拆分、解耦、服務化這些方面。因為當時第一要務是把服務上線,很多問題可以后面再改。這些功能對於一個從 0 開始的電商平台來說已經夠用了。

在剛開始的一段時間里,開發主要是滿足業務的需要,不停地增加功能、服務。后來隨着商品、用戶越來越多,架構也越來越臃腫,業務的需求慢慢也滿足不了了,一些大促、秒殺活動高並發的需求也不能滿足。主要問題是:

  • 每個服務耦合了太多的業務邏輯。以線上服務為例,前台的商品,下單,素材,活動等都在一個工程,多個功能被耦合在了一個類,甚至一個方法中
  • 並行開發困難,不同需求不同分支的功能會經常修改同一塊代碼,對多個模塊產生影響
  • 核心業務與非核心業務耦合,在關鍵時候互相影響。比如后台的通關數據曾經就影響了核心的支付業務;線上的優惠券兌換熱點數據問題,影響了核心下單業務

於是就開始了對現有架構服務化改造。每個功能指定專門的負責人,讓具體的功能開發負責具體的模塊設計,內部實現對外透明,只需要保證接口正確。

當然,架構的服務化也是要根據實際業務情況做的。比如跨境電商和傳統電商相比,在倉儲、物流、通關的流程要復雜的多,因此進銷存服務被拆分了出來。另外,版本的發布越來越多,頻率越來越快,原來手動發布的方式不僅慢,而且容易出錯,因此自動部署系統的開發上線就會極大地提高版本發布的效率。

經過服務化改造后,雖然上線次數變多,但單次上線的需求減少了,時間縮短了,影響面也變小了,風險越來越可控。

然而,對於開發來講,最主要的任務還是開發業務系統,支撐業務系統的基礎服務雖然也非常重要,但是需要投入很大的人力和精力去做。因此考拉開始采用網易雲的服務,減少重復造輪子的情況。

考拉每天產生的圖片和視頻有上百 G,需要穩定且容易擴展的文件系統,因此使用了網易雲的對象存儲服務,很輕松地解決了海量文件存儲的問題。對於數據庫,考拉采用了網易雲的分布式數據庫,比起原來的 Oracle 擴展性要好很多。

隨着業務規模的繼續擴大,提供的服務越來越多,比如支付、第三方接口、移動端的服務等都獨立出來,服務拆分的也越來越細,目前已經有上百個服務。這時也開始接入更多網易雲的服務,例如搜索、反垃圾、消息隊列。

對於電商來說,“6.18”、“11.11”這些傳統的電商大促會給系統帶來很大的挑戰。考拉在處理高並發的實踐中也積累了很多經驗,比如開發提煉出的系統穩定 4 原則:

  • 不要相信任何開發

這一條的意思是一定要保留老版本,一旦新版本發現有問題,確保隨時可以回滾到工作正常的老版本。

  • 不要相信任何測試

不論線下怎么測試,上線以后還是有可能出問題。因此需要做灰度發布,新版本先開放給一小部分用戶進行真實測試,沒問題再向所有用戶開放。

  • 不要相信任何應用

任何應用都可能崩潰,必要的時候做服務降級和限流,以保證核心業務可用。

  • 不要相信任何硬件

業務做跨機房部署,進行容災。

另外,對於高並發場景,考拉也積累了不少經驗。其中幾條比較重要的是:

  • 對一些流程做異步化

比如支付報關、優惠券派發、訂單通知都可以做異步化,這樣可以減少高並發時某些模塊的壓力。這里考拉使用了網易雲的消息隊列服務,確保發送出來的消息一定會被送達。

  • 緩存靜態化

在大促活動的時候,對於首頁、商品詳情頁、活動落地頁需要做靜態化並放到緩存中以應對短時間內海量的訪問請求。

對安全方面的保障,電商平台也十分重視,比如常見的刷單、DDoS 攻擊、H5 劫持等。為應對這些挑戰,考拉選擇了網易雲安全(易盾)產品進行秒殺防刷、H5 反劫持、下單反垃圾、活動反垃圾、高頻請求攔截、防 DDoS 攻擊等,為考拉的應用提供了全面的安全保障。

此外,隨着直播的興起,考拉也開始有一些直播購物的活動,考拉選擇了網易雲通信與視頻服務,只花了幾天時間做了簡單對接就可以立即提供視頻直播服務來吸引用戶。

還有一點,用戶量越來越多帶來的另一個問題是客服的壓力大增。盡管考拉有上百人的客服團隊,但仍然處於超負荷運轉狀態,尤其是在一些大促活動前后,幾乎需要通宵加班來應對用戶咨詢。考拉采用了網易雲的七魚智能客服,大量常見問題通過客服機器人進行回答,大大節省了人工客服的時間和精力。

考拉從創立到成長為國內進口銷售額第一的跨境電商平台,技術上遇到了各種挑戰,技術團隊能根據業務情況快速調整系統架構是考拉能輕松應對各種業務增長帶來的系統壓力的一個很重要的保障。另一方面就是技術團隊很好地利用了現有的雲服務,而不是選擇自己去開發所有服務,既節省了開發的成本,又免去了運維的成本,從而才有更多精力去打磨業務系統,更好更快地滿足業務提出的需求,推動業務向前發展。

 

 

了解 網易雲 :
網易雲官網:https://www.163yun.com/
新用戶大禮包:https://www.163yun.com/gift
網易雲社區:https://sq.163yun.com/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM