張錦賢
隨著科技發展,電商平臺在人們日常生活方面的重要性日益顯著,也引起了業界關注。目前我國傳統行業受管理模式、運營方式等多方面因素限制,向電商化發展仍然存在較為顯著的問題,同時電商平臺存在技術老舊,高性能、高可用和高擴展性仍然有待改善的問題,無法同時支持跨平臺和多終端訪問。本文基于信息化、智能化的時代背景,首先對相關理論進行了廣泛的搜索和整理,在此基礎上運用了類比法和調研法,對大型電子商務平臺技術存在的問題展開研究,意圖達到尋求符合大型電商平臺技術的研究目的。
經過調研分析之后,本研究得出了如下結論:在大型電子商務平臺開發建設中可以使用微服務架構技術,將各個功能模塊進行分離,實現高性能,高可用性和高擴展性,同時支持跨平臺訪問和多端設備訪問?;诖?,本文給出了針對性的策略與建議,希望對未來大型電商平臺技術選型提供借鑒與參考。
(一)研究背景及意義
1.研究背景
隨著全球經濟一體化和互聯網行業的高速發展,大型電商平臺作為一種新興業態在我國呈現出爆發式的增長趨勢,在促進我國經濟轉型升級,穩定增長方面也起了越來越重要的推動作用。尤其是近年來疫情帶來的影響,傳統行業為適應發展加入轉型行列,各種電商平臺也得到了突飛猛進的發展。
2.研究意義
電商平臺由于消費群體基數大,往往會導致短期內的高并發產生。軟件開發具有過程不可逆的特征,所以系統的技術底層架構是否能夠完全滿足業務的使用場景,必須要在項目實施之前進行科學、充分地論證。避免后續項目交付產生重大的技術風險。
(二)案例分析
1.項目背景
某民營500強企業,目前使用的是傳統的工廠→渠道商→門店→終端消費者的銷售模式。集團謀求全新2C模式發展,打造自營的電商平臺,通過S2B2C模式,讓品牌商品直達終端消費者和門店,減少中間環節的利益鏈條和利潤損耗。
2.項目總體需求
電商平臺系統計劃在上線1年內完成1000家的商戶入駐,實現1億GMV和100萬用戶的目標。電商平臺的整體功能包括商家入駐管理、商品管理、用戶管理、團長管理、消費者管理、訂單管理、營銷活動、直播導流、頁面裝修、數據分析、財務系統和ERP管理模塊。另外,計劃在系統上線3個月后進行一次秒殺促銷活動,根據業務量預估會有5萬并發量。
3.項目技術要點
平臺的系統結構龐大,但是業務模塊要求快速上線,以便能夠快速進行市場推廣,根據市場的反饋再來調整系統的功能和營銷的方案,所以本次項目建設需要采用敏捷開發模式,系統通過每個小版本進行迭代,整體架構需要有很好的可擴展性和兼容性。
因此,本項目對技術的選型有比較高的要求,要求能夠承受5萬以上的并發量,并且需要后期基于用戶量做到動態擴容。同時電商系統具有24小時不能停止運行的特性,本系統對于系統運維和日志管理也有比較高的要求。
基于以上項目背景和要求,我們對本次電商平臺項目建設中需要用到的相關技術架構和技術方案進行分析。
(一)該項目技術可行性分析的原則
1.先進性
項目采用Java SpringCloud微服務架構和SpringBoot框架進行開發,該框架是業內公認的發展前沿技術,并且在很多大型的互聯網公司得到驗證。系統采用Java語言和業內最流行的Spring框架,完全滿足技術發展趨勢和先進性。
SpringCloud微服務架構相對于傳統Java架構具有以下五點優勢。
(1) 松散耦合和容錯性:微服務架構中各個服務之間是松散耦合的,當一個服務發生故障時可以進行快速定位和修復,不會影響整個系統的正常運行。
(2)彈性伸縮:微服務架構中,每一個服務都可以獨立部署和擴容,可以根據業務需求快速添加或刪除服務,提高了系統的彈性和可伸縮性。
(3)更好的維護性和可測試性:由于微服務架構中服務的職責單一,相對獨立,因此對服務的維護和測試也更加容易。
(4) 靈活的技術選型:微服務架構中,不同的服務可以采用不同的技術棧,可以根據業務需求選擇最合適的技術,提高了開發效率和系統性能。
(5)動態更新和版本控制:微服務架構中,每個服務都是一個獨立的模塊,可以進行獨立的更新和版本控制,避免整個系統因為一個小的更改而進行大規模的重構。
2.適應性
項目采用SpringCloud的consul注冊中心,采用動態配置方式和自動負載均衡的方式,滿足系統配置和動態擴展。
3.穩定性
項目采用微服務架構,每個服務都有幾個實例在運行,并且分布于各個虛擬機或容器,不存在單點故障問題。由于系統采用可伸縮的架構,在高并發的時候,可以動態的增加資源來抵御性能的涌浪,處理旺季高并發。系統并且提供了分布式作業系統,可以很好地處理大量報表集中的問題。
4.安全性
系統在架構的安全性上,對外訪問只提供了Https的網關,只有一個入口,可以很好地保障傳輸過程。
在系統內部的認證上,采用了JWT的Token機制,保障分布式認證和內部認證的安全性,系統采用了完善的日志機制,記錄各種風險的操作,保障在事前事后能做審計和記錄。
(二)技術選型
1.技術選型總概況如圖1所示。

2.項目開發語言選型
項目的后端語言采用Java為開發語言,具有穩定性和較完善的生態圈,是目前后臺開發的主流語言。
3.分布式框架選型
項目后臺開發框架采用springboot框架和springcloud分布式微服務框架,springboot是springmvc的改進和敏捷版本,是目前主流的框架。
SpringCloud是目前主流的微服務框架,目前在互聯網大平臺得到廣泛的應用,滴滴打車平臺和美團均采用了springcloud框架。
4.前端框架
前端H5和管理平臺采用Vue.js作為開發框架。Vue.js是最近兩年發展迅猛的框架,在開發效率和穩定性都非常好,是目前前端主流開發的3大框架。
5.ORM框架
現代系統開發使用的數據庫都需要使用ORM,本次采用了Mybatis作為ORM框架,其采用的ORM轉換、性能處理及SQL映射的方便性和靈活性都非常好。
(三)總體架構
1.總體框架如圖2所示。
2.接入層管理
接入層主要采用Nginx處理接入。通過采用雙Nginx入口的方式,在負責均衡和性能上有突出的表現。
在微服務的網關接入層,需要進行動態網關路由,因此采用了Springcloud的組件Zuul,可以根據發現服務Consul注冊的微服務進行動態路由。

3.中間件層
中間件層主要包括發現服務和緩存服務,發現服務Consul主要保障分布式治理的CAP原則,包括了統一的配置管理、統一發現服務、統一的故障檢測服務。當微服務向Consul注冊的時候,Consul會自動做健康檢查和統一的發現服務。在Consul注冊的機器中,Zuul能主動發現,并且多臺機器能進行自動負載均衡處理。
Redis服務主要進行緩存和內部隊列安排,在一些推送、輪詢的業務處理上,將數據庫的壓力釋放在Redis上,并且用戶體驗更好。
4.微服務結構
微服務是核心的業務架構,每個業務功能均采用Springboot框架,并且服務和服務之間調用通過Feign進行調用。
每個微服務均可以注冊到Consol服務發現中,并且可以自動負載均
本文筆者在擔任企業見習項目經理一職期間,帶領項目團隊,通過對項目的開發語言選型、前后端開發框架、ORM框架、數據庫分表分庫框架和系統的整體架構等技術做全面分析,為后續項目實施、測試提供技術指引,有利于項目建設,從而提高項目的可行性和成功率,同時也給同類型項目提供案例借鑒。
作者單位:廣州商學院
基金項目:廣東省高等教育學會“十四五”規劃2021年度高等教育研究課題“大學生德智體美勞全面而有個性發展評價改革研究——大學生德智體美勞評價平臺探究與設計”(21GQN62);2020年度廣東省普通高校特色創新項目(自然科學)“校園網絡安全態勢感知關鍵技術研究”(2020KTSCX169)。