周瓊偉
摘要:近年來,中國的電子商務(wù)快速發(fā)展,交易額連創(chuàng)新高,電子商務(wù)在各領(lǐng)域的應(yīng)用不斷拓展和深化、相關(guān)服務(wù)業(yè)蓬勃發(fā)展、支撐體系不斷健全完善、創(chuàng)新的動(dòng)力和能力不斷增強(qiáng)。電子商務(wù)正在與實(shí)體經(jīng)濟(jì)深度融合,進(jìn)入規(guī)模性發(fā)展階段,對經(jīng)濟(jì)社會生活的影響不斷增大,正成為我國經(jīng)濟(jì)發(fā)展的新引擎。網(wǎng)上商城是一個(gè)綜合性的B2C平臺。會員可以在商城瀏覽商品、下訂單,以及參加各種活動(dòng)。管理員、運(yùn)營可以在平臺后臺管理系統(tǒng)中管理商品、訂單、會員等??头梢栽诤笈_管理系統(tǒng)中處理用戶的詢問以及投訴。
關(guān)鍵詞:電子商務(wù);網(wǎng)上商城;分布式;主流框架;高并發(fā)
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)01-0094-02
現(xiàn)階段中國的電子商務(wù)平臺發(fā)展迅猛,涵蓋了現(xiàn)代人的衣食住行,賺取巨大利潤的同時(shí)也極大地方便了人們的生活,為人們的生活帶來了巨大的改變。電子商務(wù)一定意義上也改變了人們傳統(tǒng)的消費(fèi)思維模式。電子商務(wù)交易的規(guī)模也逐年上漲,如圖1所示。同時(shí)也吸引了越來越多的人用互聯(lián)網(wǎng)的思維去考慮傳統(tǒng)行業(yè)的新模式,新思路。歸結(jié)到商業(yè)平臺上,最終還是會使用一個(gè)商城的模式。
1 商城的整體架構(gòu)
針對商城的復(fù)雜性,所以在系統(tǒng)的搭建的建構(gòu)選擇方面我們會選用soa架構(gòu)。所謂的soa就是通過將后臺的系統(tǒng)進(jìn)行拆分,每個(gè)功能對應(yīng)一個(gè)后臺系統(tǒng)。這樣降低了系統(tǒng)的耦合度,同時(shí)保證了系統(tǒng)的穩(wěn)定性和處理多個(gè)任務(wù)的高效。系統(tǒng)的之間的通訊方式使用dubbo框架。Dubbo作為服務(wù)中間鍵,它的作用就是使系統(tǒng)之間的方法能夠進(jìn)行相互的調(diào)用。
如圖2所示,前段頁面中的訂單系統(tǒng),會員系統(tǒng),前臺系統(tǒng),后臺系統(tǒng)以及搜素系統(tǒng),接入的是不同項(xiàng)目的服務(wù)層入口,每個(gè)項(xiàng)目的服務(wù)層針對性的處理不同前臺發(fā)過來的請求。最終完成數(shù)據(jù)庫的存取工作。
2 商城基本功能的介紹
一個(gè)商城的功能邏輯模塊清楚之后還有一些問題需要解決。比如當(dāng)同樣的商品被多次查詢后會加大與數(shù)據(jù)庫的交互,對于一個(gè)大型的電商平臺而言這是比較致命的,可能會導(dǎo)致數(shù)據(jù)的崩潰。因而針對這點(diǎn)我們應(yīng)該使用緩存技術(shù)。如圖3式。首次進(jìn)行商品查詢得到的結(jié)構(gòu)我們將用json數(shù)據(jù)的格式進(jìn)行分裝,同時(shí)將其保存到緩存數(shù)據(jù)庫中。
針對索引庫的建立我們是基于solor框架。其作用流程如圖4所示。Solor的使用是基于一個(gè)分詞工具。也就是說存入solor中的數(shù)據(jù)的關(guān)鍵詞將會被分詞器所拆分。因此在人們進(jìn)行檢索的時(shí)候就可以查到關(guān)鍵詞。在前端請求進(jìn)入到持久層后,首先并不會先去數(shù)據(jù)庫中進(jìn)行檢索,而是先會去索引庫中進(jìn)行檢索。如果能有數(shù)據(jù)就會直接返回結(jié)果。當(dāng)然索引庫的更新依然是一個(gè)問題。顯存的解決方案大致是包括兩種。一種做法是每每在后臺添加了一種商品之后,就自動(dòng)同步到索引庫,但是這樣就會比較浪費(fèi)資源。所以現(xiàn)在比較流行的做法是定時(shí)更新。一般會規(guī)定在晚上訪問量不大的情況下進(jìn)行定時(shí)刷新索引庫。
3 商城框架使用
現(xiàn)在市場上流行的網(wǎng)上商城大都是基于java語言進(jìn)行開發(fā)。因?yàn)閖ava相對于其他語言如php,python,nojs而言,它的解決方案更多,同時(shí)它對大數(shù)據(jù)的處理能力更強(qiáng)?,F(xiàn)行的java一般對于請求是進(jìn)行三段式處理,即表現(xiàn)層,服務(wù)層和持久層。針對三層式的結(jié)構(gòu),現(xiàn)在市場上流行的框架也很多。針對表現(xiàn)層,流行的框架包括springmvc和struts2,以及已經(jīng)過時(shí)的struts1。針對服務(wù)層,現(xiàn)在主流的框架仍然是spring。針對持久層的框架,主流的框架包括mybatis和hibernate。兩者不同之處在于處理sql語句的不用。Mybatis更加靈活,但是語句的可讀性也比較差。Hibernate是針對對象的模型進(jìn)行數(shù)據(jù)庫的調(diào)用,可讀性比較好,但是sql語句比較固定。針對三層的任務(wù),表現(xiàn)層是接受前端發(fā)來的請求,同時(shí)交給服務(wù)層,最后將從數(shù)據(jù)庫中檢索的數(shù)據(jù)返回到前段頁面。服務(wù)層是將請求的進(jìn)行一個(gè)邏輯管理,最后請求相應(yīng)的數(shù)據(jù)庫,最后將請求到的數(shù)據(jù)返回給表現(xiàn)層。而持久層的作用就是接受請求,最后調(diào)用數(shù)據(jù)庫,最終將數(shù)據(jù)傳遞給服務(wù)層。
4 針對并發(fā)量問題的解決方案
針對并發(fā)量的問題,現(xiàn)在處理的方式也是綜合性的,包括靜態(tài)頁面技術(shù),項(xiàng)目的分布式結(jié)構(gòu),nginx反向代理技術(shù)。一個(gè)tomcat或者jetty亦或者jboss這種服務(wù)器的承載訪問量大致是在500左右,如果多個(gè)服務(wù)器疊加訪問量也不是一個(gè)加效果,所以針對這個(gè)關(guān)鍵性的問題,主流技術(shù)是在各個(gè)環(huán)節(jié)上進(jìn)行改善。首先是頁面的訪問采用靜態(tài)頁面技術(shù),不是所有的 訪問都會調(diào)用程序的邏輯機(jī)制。查到的數(shù)據(jù)會填寫到一個(gè)邏輯模板中,也就是一個(gè)靜態(tài)的html頁面上。也就是說表現(xiàn)層不用就耗費(fèi)資源去進(jìn)行一個(gè)頁面的渲染工作?,F(xiàn)在比較流行的框架是freemark。針對項(xiàng)目部署方面的工作,nginx是一個(gè)很大程度提升網(wǎng)站訪問量的工具。我們一般可以在多個(gè)服務(wù)器上進(jìn)行項(xiàng)目的部署,然后將服務(wù)器的地址寫入到nginx中,同時(shí)也可以分配服務(wù)器的訪問權(quán)重。最后用戶進(jìn)行訪問的時(shí)候是有nginx作為一個(gè)訪問的入口,進(jìn)行一個(gè)均衡的訪問。合理的運(yùn)用這些技術(shù)訪問量大致可以保持在百萬級。當(dāng)然如果有更高的訪問需求,就可以考慮消息隊(duì)列機(jī)制的框架進(jìn)行優(yōu)化,如Activity MQ。
參考文獻(xiàn):
[1] 魯珂.基于Java語言的網(wǎng)絡(luò)操作系統(tǒng)[J].電子技術(shù)與軟件工程,2017(10):247.
[2] 張堯.基于Nginx高并發(fā)Web服務(wù)器的改進(jìn)與實(shí)現(xiàn)[D].長春:吉林大學(xué),2016.
[3] 荀崇崇,覃章健,王欣穎.基于JavaEE的CMS網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)[J].科技風(fēng),2016(8):19.
[4] 王利萍.基于Nginx服務(wù)器集群負(fù)載均衡技術(shù)的研究與改進(jìn)[D].濟(jì)南:山東大學(xué),2015.
[5] 陸洲.JavaEE核心模式研究[J].計(jì)算機(jī)與數(shù)字工程,2014,42(1):81-84.
[6] 歐鋒,鄒敏,李曉楨.Java技術(shù)框架概述[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2012,21(8):236-239.
[7] 王艷慧.JAVA技術(shù)在政府網(wǎng)站建設(shè)中應(yīng)用[C]//第十屆中國Java技術(shù)及應(yīng)用大會文集,2007:3.
[8] 張自然.基于JAVA/CORBA的WWW分布式電子商務(wù)系統(tǒng)研究[D].武漢:華中師范大學(xué),2002.endprint