張錦賢
隨著科技發(fā)展,電商平臺(tái)在人們?nèi)粘I罘矫娴闹匾匀找骘@著,也引起了業(yè)界關(guān)注。目前我國(guó)傳統(tǒng)行業(yè)受管理模式、運(yùn)營(yíng)方式等多方面因素限制,向電商化發(fā)展仍然存在較為顯著的問題,同時(shí)電商平臺(tái)存在技術(shù)老舊,高性能、高可用和高擴(kuò)展性仍然有待改善的問題,無法同時(shí)支持跨平臺(tái)和多終端訪問。本文基于信息化、智能化的時(shí)代背景,首先對(duì)相關(guān)理論進(jìn)行了廣泛的搜索和整理,在此基礎(chǔ)上運(yùn)用了類比法和調(diào)研法,對(duì)大型電子商務(wù)平臺(tái)技術(shù)存在的問題展開研究,意圖達(dá)到尋求符合大型電商平臺(tái)技術(shù)的研究目的。
經(jīng)過調(diào)研分析之后,本研究得出了如下結(jié)論:在大型電子商務(wù)平臺(tái)開發(fā)建設(shè)中可以使用微服務(wù)架構(gòu)技術(shù),將各個(gè)功能模塊進(jìn)行分離,實(shí)現(xiàn)高性能,高可用性和高擴(kuò)展性,同時(shí)支持跨平臺(tái)訪問和多端設(shè)備訪問?;诖耍疚慕o出了針對(duì)性的策略與建議,希望對(duì)未來大型電商平臺(tái)技術(shù)選型提供借鑒與參考。
(一)研究背景及意義
1.研究背景
隨著全球經(jīng)濟(jì)一體化和互聯(lián)網(wǎng)行業(yè)的高速發(fā)展,大型電商平臺(tái)作為一種新興業(yè)態(tài)在我國(guó)呈現(xiàn)出爆發(fā)式的增長(zhǎng)趨勢(shì),在促進(jìn)我國(guó)經(jīng)濟(jì)轉(zhuǎn)型升級(jí),穩(wěn)定增長(zhǎng)方面也起了越來越重要的推動(dòng)作用。尤其是近年來疫情帶來的影響,傳統(tǒng)行業(yè)為適應(yīng)發(fā)展加入轉(zhuǎn)型行列,各種電商平臺(tái)也得到了突飛猛進(jìn)的發(fā)展。
2.研究意義
電商平臺(tái)由于消費(fèi)群體基數(shù)大,往往會(huì)導(dǎo)致短期內(nèi)的高并發(fā)產(chǎn)生。軟件開發(fā)具有過程不可逆的特征,所以系統(tǒng)的技術(shù)底層架構(gòu)是否能夠完全滿足業(yè)務(wù)的使用場(chǎng)景,必須要在項(xiàng)目實(shí)施之前進(jìn)行科學(xué)、充分地論證。避免后續(xù)項(xiàng)目交付產(chǎn)生重大的技術(shù)風(fēng)險(xiǎn)。
(二)案例分析
1.項(xiàng)目背景
某民營(yíng)500強(qiáng)企業(yè),目前使用的是傳統(tǒng)的工廠→渠道商→門店→終端消費(fèi)者的銷售模式。集團(tuán)謀求全新2C模式發(fā)展,打造自營(yíng)的電商平臺(tái),通過S2B2C模式,讓品牌商品直達(dá)終端消費(fèi)者和門店,減少中間環(huán)節(jié)的利益鏈條和利潤(rùn)損耗。
2.項(xiàng)目總體需求
電商平臺(tái)系統(tǒng)計(jì)劃在上線1年內(nèi)完成1000家的商戶入駐,實(shí)現(xiàn)1億GMV和100萬用戶的目標(biāo)。電商平臺(tái)的整體功能包括商家入駐管理、商品管理、用戶管理、團(tuán)長(zhǎng)管理、消費(fèi)者管理、訂單管理、營(yíng)銷活動(dòng)、直播導(dǎo)流、頁面裝修、數(shù)據(jù)分析、財(cái)務(wù)系統(tǒng)和ERP管理模塊。另外,計(jì)劃在系統(tǒng)上線3個(gè)月后進(jìn)行一次秒殺促銷活動(dòng),根據(jù)業(yè)務(wù)量預(yù)估會(huì)有5萬并發(fā)量。
3.項(xiàng)目技術(shù)要點(diǎn)
平臺(tái)的系統(tǒng)結(jié)構(gòu)龐大,但是業(yè)務(wù)模塊要求快速上線,以便能夠快速進(jìn)行市場(chǎng)推廣,根據(jù)市場(chǎng)的反饋再來調(diào)整系統(tǒng)的功能和營(yíng)銷的方案,所以本次項(xiàng)目建設(shè)需要采用敏捷開發(fā)模式,系統(tǒng)通過每個(gè)小版本進(jìn)行迭代,整體架構(gòu)需要有很好的可擴(kuò)展性和兼容性。
因此,本項(xiàng)目對(duì)技術(shù)的選型有比較高的要求,要求能夠承受5萬以上的并發(fā)量,并且需要后期基于用戶量做到動(dòng)態(tài)擴(kuò)容。同時(shí)電商系統(tǒng)具有24小時(shí)不能停止運(yùn)行的特性,本系統(tǒng)對(duì)于系統(tǒng)運(yùn)維和日志管理也有比較高的要求。
基于以上項(xiàng)目背景和要求,我們對(duì)本次電商平臺(tái)項(xiàng)目建設(shè)中需要用到的相關(guān)技術(shù)架構(gòu)和技術(shù)方案進(jìn)行分析。
(一)該項(xiàng)目技術(shù)可行性分析的原則
1.先進(jìn)性
項(xiàng)目采用Java SpringCloud微服務(wù)架構(gòu)和SpringBoot框架進(jìn)行開發(fā),該框架是業(yè)內(nèi)公認(rèn)的發(fā)展前沿技術(shù),并且在很多大型的互聯(lián)網(wǎng)公司得到驗(yàn)證。系統(tǒng)采用Java語言和業(yè)內(nèi)最流行的Spring框架,完全滿足技術(shù)發(fā)展趨勢(shì)和先進(jìn)性。
SpringCloud微服務(wù)架構(gòu)相對(duì)于傳統(tǒng)Java架構(gòu)具有以下五點(diǎn)優(yōu)勢(shì)。
(1) 松散耦合和容錯(cuò)性:微服務(wù)架構(gòu)中各個(gè)服務(wù)之間是松散耦合的,當(dāng)一個(gè)服務(wù)發(fā)生故障時(shí)可以進(jìn)行快速定位和修復(fù),不會(huì)影響整個(gè)系統(tǒng)的正常運(yùn)行。
(2)彈性伸縮:微服務(wù)架構(gòu)中,每一個(gè)服務(wù)都可以獨(dú)立部署和擴(kuò)容,可以根據(jù)業(yè)務(wù)需求快速添加或刪除服務(wù),提高了系統(tǒng)的彈性和可伸縮性。
(3)更好的維護(hù)性和可測(cè)試性:由于微服務(wù)架構(gòu)中服務(wù)的職責(zé)單一,相對(duì)獨(dú)立,因此對(duì)服務(wù)的維護(hù)和測(cè)試也更加容易。
(4) 靈活的技術(shù)選型:微服務(wù)架構(gòu)中,不同的服務(wù)可以采用不同的技術(shù)棧,可以根據(jù)業(yè)務(wù)需求選擇最合適的技術(shù),提高了開發(fā)效率和系統(tǒng)性能。
(5)動(dòng)態(tài)更新和版本控制:微服務(wù)架構(gòu)中,每個(gè)服務(wù)都是一個(gè)獨(dú)立的模塊,可以進(jìn)行獨(dú)立的更新和版本控制,避免整個(gè)系統(tǒng)因?yàn)橐粋€(gè)小的更改而進(jìn)行大規(guī)模的重構(gòu)。
2.適應(yīng)性
項(xiàng)目采用SpringCloud的consul注冊(cè)中心,采用動(dòng)態(tài)配置方式和自動(dòng)負(fù)載均衡的方式,滿足系統(tǒng)配置和動(dòng)態(tài)擴(kuò)展。
3.穩(wěn)定性
項(xiàng)目采用微服務(wù)架構(gòu),每個(gè)服務(wù)都有幾個(gè)實(shí)例在運(yùn)行,并且分布于各個(gè)虛擬機(jī)或容器,不存在單點(diǎn)故障問題。由于系統(tǒng)采用可伸縮的架構(gòu),在高并發(fā)的時(shí)候,可以動(dòng)態(tài)的增加資源來抵御性能的涌浪,處理旺季高并發(fā)。系統(tǒng)并且提供了分布式作業(yè)系統(tǒng),可以很好地處理大量報(bào)表集中的問題。
4.安全性
系統(tǒng)在架構(gòu)的安全性上,對(duì)外訪問只提供了Https的網(wǎng)關(guān),只有一個(gè)入口,可以很好地保障傳輸過程。
在系統(tǒng)內(nèi)部的認(rèn)證上,采用了JWT的Token機(jī)制,保障分布式認(rèn)證和內(nèi)部認(rèn)證的安全性,系統(tǒng)采用了完善的日志機(jī)制,記錄各種風(fēng)險(xiǎn)的操作,保障在事前事后能做審計(jì)和記錄。
(二)技術(shù)選型
1.技術(shù)選型總概況如圖1所示。
2.項(xiàng)目開發(fā)語言選型
項(xiàng)目的后端語言采用Java為開發(fā)語言,具有穩(wěn)定性和較完善的生態(tài)圈,是目前后臺(tái)開發(fā)的主流語言。
3.分布式框架選型
項(xiàng)目后臺(tái)開發(fā)框架采用springboot框架和springcloud分布式微服務(wù)框架,springboot是springmvc的改進(jìn)和敏捷版本,是目前主流的框架。
SpringCloud是目前主流的微服務(wù)框架,目前在互聯(lián)網(wǎng)大平臺(tái)得到廣泛的應(yīng)用,滴滴打車平臺(tái)和美團(tuán)均采用了springcloud框架。
4.前端框架
前端H5和管理平臺(tái)采用Vue.js作為開發(fā)框架。Vue.js是最近兩年發(fā)展迅猛的框架,在開發(fā)效率和穩(wěn)定性都非常好,是目前前端主流開發(fā)的3大框架。
5.ORM框架
現(xiàn)代系統(tǒng)開發(fā)使用的數(shù)據(jù)庫都需要使用ORM,本次采用了Mybatis作為ORM框架,其采用的ORM轉(zhuǎn)換、性能處理及SQL映射的方便性和靈活性都非常好。
(三)總體架構(gòu)
1.總體框架如圖2所示。
2.接入層管理
接入層主要采用Nginx處理接入。通過采用雙Nginx入口的方式,在負(fù)責(zé)均衡和性能上有突出的表現(xiàn)。
在微服務(wù)的網(wǎng)關(guān)接入層,需要進(jìn)行動(dòng)態(tài)網(wǎng)關(guān)路由,因此采用了Springcloud的組件Zuul,可以根據(jù)發(fā)現(xiàn)服務(wù)Consul注冊(cè)的微服務(wù)進(jìn)行動(dòng)態(tài)路由。
3.中間件層
中間件層主要包括發(fā)現(xiàn)服務(wù)和緩存服務(wù),發(fā)現(xiàn)服務(wù)Consul主要保障分布式治理的CAP原則,包括了統(tǒng)一的配置管理、統(tǒng)一發(fā)現(xiàn)服務(wù)、統(tǒng)一的故障檢測(cè)服務(wù)。當(dāng)微服務(wù)向Consul注冊(cè)的時(shí)候,Consul會(huì)自動(dòng)做健康檢查和統(tǒng)一的發(fā)現(xiàn)服務(wù)。在Consul注冊(cè)的機(jī)器中,Zuul能主動(dòng)發(fā)現(xiàn),并且多臺(tái)機(jī)器能進(jìn)行自動(dòng)負(fù)載均衡處理。
Redis服務(wù)主要進(jìn)行緩存和內(nèi)部隊(duì)列安排,在一些推送、輪詢的業(yè)務(wù)處理上,將數(shù)據(jù)庫的壓力釋放在Redis上,并且用戶體驗(yàn)更好。
4.微服務(wù)結(jié)構(gòu)
微服務(wù)是核心的業(yè)務(wù)架構(gòu),每個(gè)業(yè)務(wù)功能均采用Springboot框架,并且服務(wù)和服務(wù)之間調(diào)用通過Feign進(jìn)行調(diào)用。
每個(gè)微服務(wù)均可以注冊(cè)到Consol服務(wù)發(fā)現(xiàn)中,并且可以自動(dòng)負(fù)載均
本文筆者在擔(dān)任企業(yè)見習(xí)項(xiàng)目經(jīng)理一職期間,帶領(lǐng)項(xiàng)目團(tuán)隊(duì),通過對(duì)項(xiàng)目的開發(fā)語言選型、前后端開發(fā)框架、ORM框架、數(shù)據(jù)庫分表分庫框架和系統(tǒng)的整體架構(gòu)等技術(shù)做全面分析,為后續(xù)項(xiàng)目實(shí)施、測(cè)試提供技術(shù)指引,有利于項(xiàng)目建設(shè),從而提高項(xiàng)目的可行性和成功率,同時(shí)也給同類型項(xiàng)目提供案例借鑒。
作者單位:廣州商學(xué)院
基金項(xiàng)目:廣東省高等教育學(xué)會(huì)“十四五”規(guī)劃2021年度高等教育研究課題“大學(xué)生德智體美勞全面而有個(gè)性發(fā)展評(píng)價(jià)改革研究——大學(xué)生德智體美勞評(píng)價(jià)平臺(tái)探究與設(shè)計(jì)”(21GQN62);2020年度廣東省普通高校特色創(chuàng)新項(xiàng)目(自然科學(xué))“校園網(wǎng)絡(luò)安全態(tài)勢(shì)感知關(guān)鍵技術(shù)研究”(2020KTSCX169)。