国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SOA架構的互聯(lián)網(wǎng)商城的設計與研發(fā)

2019-09-10 03:53張宇劉德磊趙明浩丁逸凡張淑婧
電子商務 2019年11期
關鍵詞:電子商務

張宇 劉德磊 趙明浩 丁逸凡 張淑婧

摘要:作為電子行業(yè)的新興產業(yè),電子商務近年來發(fā)展迅猛,截至2018年底,中國B2B電子商務的市場交易規(guī)模累計產值增額達到118.9萬億,約占電子行業(yè)產值總額的62.3%,同比增額18.6%。本課題主要針對供給綜合的主流B2B2C電商模式的平臺建設和.NET的研究與應用,千萬量級數(shù)據(jù)的企業(yè)級搜索,快速存儲以及高并發(fā)的關鍵難題,構建一套完整的基于分布式與SOA組合架構。實現(xiàn)存儲分布式,集群容器于一體的多功能互聯(lián)網(wǎng)商城,可擴展與高并發(fā)高性能的電子商務平臺。

關鍵詞:電子商務;SOA架構;B2B2C模式;企業(yè)級搜索;分布式緩存;.NET;集群容器

引言

隨著電子行業(yè)的新興發(fā)展與國家政策的開放支持,電子行業(yè)擁有巨大的市場前景與發(fā)展空間,同時,國家出臺多項法令法規(guī),保障第三方平臺與消費者的利益與權益,營造更為健康,安全,便捷,規(guī)范的電子行業(yè)的行業(yè)環(huán)境,本課題主要基于分布式SOA框架的互聯(lián)網(wǎng)商城的設計優(yōu)化以及關鍵技術的應用研究,主要研究內容包括:

(1) 分布式架構(Dubbox)的研究應用與SOA(面向服務的架構)整合優(yōu)化。

(2) 搜索引擎的技術選型,消息中間件與消息隊列的應用構架,網(wǎng)頁頁面靜態(tài)化方案,非關系型(Nosql)數(shù)據(jù)庫技術的應用,減少數(shù)據(jù)庫訪問壓力,對海量數(shù)據(jù)及非結構化數(shù)據(jù)的管理與快速搜索(key-value)。

(3) Http反向代理服務器(Nginx),容器部署解決方案(Docker),服務器集群的搭建與部署。

(4) DFS(分布式文件系統(tǒng))和CAS(單點登錄系統(tǒng))的嵌入與整合,提高資源訪問率與商務平臺的安全性與可靠性。

(5) 電子商務:秒殺服務,用戶中心,評價服務,購物車功能,短信服務,支付服務等互聯(lián)網(wǎng)商城的關鍵技術與復雜邏輯服務的設計與實現(xiàn)。

針對互聯(lián)網(wǎng)商城的特性,依據(jù)當前電商行業(yè)的運作模式,選擇合適的高性能的電商開發(fā)技術,使得整個互聯(lián)網(wǎng)商城面向低耦合高內聚,接口隔離,單一職責,依賴倒置等設計模式等基本原則,提升商城平臺的可復用性和實用性。

1、系統(tǒng)設計

電子商務互聯(lián)網(wǎng)商城的業(yè)務邏輯復雜,各個模塊之間調度關系緊密,數(shù)據(jù)庫訪問量大,為了符合軟件設計的“低耦合高內聚,接口隔離,單一職責,開放封閉”的原則,準確,可逆的科技工作流模塊支持,良好的開放性和擴展性,本課題互聯(lián)網(wǎng)商城采用Dubbox分布式架構作為前端控制層和服務層交互的中介,Dubbox架構符合SSM設計原則,也是目前主流的框架集,實現(xiàn)邏輯功能和前端顯示交互的分離。對于關系型數(shù)據(jù)庫MySQL采用數(shù)據(jù)庫中間件MyCat控制與管理,在數(shù)據(jù)庫服務器Linux上搭建主從分布式集群Nginx,RedisCluster,SolrCloud,容器部署Docker,主備服務器模式確保服務器的安全性與可靠性,投票選舉機制與集群分片完善集群運行機制,消息中間件ActiveMQ負責調度短信微服務和頁面生成服務,與Redis協(xié)同完成搜索服務的調用與數(shù)據(jù)返回。ActiveMQ負責消息傳遞和任務調度,減輕數(shù)據(jù)庫的訪問量。本課題只針對互聯(lián)網(wǎng)商城關鍵模塊(如圖1所示)的設計實現(xiàn)與較復雜的模塊服務邏輯功能研究與剖析與技術選型,并對商城整體思路的流程控制與技術整合優(yōu)化。

系統(tǒng)架構各部分說明如圖1所示:

(1) 表現(xiàn)層(Web層)

Web層主要是負責前端頁面的顯示,用戶與商家,運營商交互的頁面,主要以html5為基礎,angularJS為前端參數(shù)動態(tài)綁定與邏輯服務處理,接收服務層參數(shù)并封裝調用,F(xiàn)reemarker生成靜態(tài)化頁面,實現(xiàn)動態(tài)與靜態(tài)的整合與交互。

(2) 服務層(Service層)

作為連接前端與數(shù)據(jù)庫的中介,服務層主要負責單一職責的功能邏輯處理,與前端顯示和控制分離,負責實例化模塊類,通過調用dao層的逆向工程和數(shù)據(jù)映射產生的表數(shù)據(jù)對象,完成對數(shù)據(jù)庫或索引庫的查詢,并將參數(shù)數(shù)據(jù)結果返回給前端。

(3)數(shù)據(jù)層(數(shù)據(jù)庫)

數(shù)據(jù)層不涉及邏輯業(yè)務的操作,由硬件或軟件服務器以及數(shù)據(jù)庫服務器,企業(yè)級搜索引擎SolrCloud以及消息中間件ActiveMQ和Docker容器等集群組成,在Linux系統(tǒng)上完成部署和配置,完成對海量商品數(shù)據(jù)的存儲和訪問,按照性能要求存儲數(shù)據(jù),直接訪問物理內存,減緩數(shù)據(jù)庫查詢壓力,提升訪問速率。

2、系統(tǒng)研發(fā)與優(yōu)化

2.1 系統(tǒng)開發(fā)及其運行環(huán)境

本課題在多次調試運行后,本課題最終采用的系統(tǒng)開發(fā)運行環(huán)境如表1所示:

2.2 系統(tǒng)關鍵技術實現(xiàn)

2.2.1 消息中間件JMS實現(xiàn)與ActiveMQ整合流程

(1) JMS工作原理

JMS是Java平臺提供的廠商執(zhí)行標準的消息傳遞API接口,用來定義一個客戶機向另一個客戶機消息傳遞的標準規(guī)范,進行分布式和異步通信,傳遞路由信息和元信息參數(shù),并且提供了優(yōu)先于普通消息的傳遞優(yōu)先級路線,完成消息傳遞。JMS提供了物種消息傳遞類型機制,根據(jù)不同的消息類型機制可以對一般和特殊數(shù)據(jù)消息傳遞:

課題中涉及的類型模板表單數(shù)據(jù),需采用MapMessage封裝并傳遞Json數(shù)據(jù),品牌,訂單,規(guī)格和首頁輪播涉及的表單數(shù)據(jù)采用TextMessage傳遞參數(shù),商品表數(shù)據(jù)采用ObjectMessage類型傳遞序列化對象實例。

(2) JMS與ActiveMQ整合流程

創(chuàng)建連接工廠;獲取連接;啟動連接;獲取session(參數(shù)1:是否啟動事務,參數(shù)2:消息確認模式)。創(chuàng)建主題對象(Queue或Topic);創(chuàng)建消息消費;監(jiān)聽消息;等待鍵盤輸入;關閉資源。

在商城平臺JMS和ActiveMQ的開發(fā)整合時,JMS和ActibeMQ的相關配置和基類注入都交由Spring統(tǒng)一管理,Xml文件中配置Spring提供的JMS服務廠商提供的工具類,其中使用的是JMS模板JmsTemplete及其中的方法進行消息的發(fā)送和接收,配置產生JMS服務的連接工廠和消息監(jiān)聽容器,導入和移除Solr索引庫記錄及搜索服務用到Queue點對點文本隊列模式,對于網(wǎng)頁頁面靜態(tài)化部分,先解除與Dubbox的依賴耦合,修改頁面服務實現(xiàn)類的@Service注解為org. springframework.stereotype.Service包下的@Service注解。調用MessageCreator()方法返回參數(shù)完成操作,查詢品牌和規(guī)格列表返回map類型的集合結果給控制層。

發(fā)送(發(fā)布訂閱),商品詳情頁的索引刪除,商品內容上架審核部分。

2.2.2 搜索引擎(Solr)實現(xiàn)

數(shù)據(jù)庫服務器(Linux)完成solr環(huán)境的安裝、ik分析器和業(yè)務域的配置。配置solr的本地配置文件倉庫solrhome中的schema.xml文件,設置與數(shù)據(jù)庫商品表單參數(shù)對應的字段復制域和動態(tài)域使用。如果映射存儲值段為imagetype,則將indexed屬性設置為false,將關鍵字查找域的storage屬性設置為false。(1)紅色設置為閃爍,多值屬性設置為真。在商品對應的構造類中,動態(tài)域對應的數(shù)據(jù)庫字段配置了@dynamic注解。(2)將solr模板類solrtimplete注入到服務層xml文件中,便于開發(fā)人員使用。(3)商城平臺商品搜索業(yè)務邏輯規(guī)則:用戶輸入搜索關鍵字時,搜索引擎根據(jù)schema.xml文件的配置的關鍵字字段,根據(jù)域名搜索數(shù)據(jù)庫,在爬蟲類數(shù)據(jù)中用關鍵字字段搜索數(shù)據(jù),調用solr模板類返回所有商品信息。包括商品SPU和包含關鍵字字段的SKU,并將其顯示到solrhome/ collection1。搜索前端頁面并返回商品的類別和等級。(4)用戶能夠確定商品的價錢范疇。選擇后,商品價格范圍消失。當用戶搜尋數(shù)據(jù)庫品牌稱號的關鍵字時,品牌選擇范圍將自動消失。注意:在處理關鍵字搜索時,應將關鍵字作為空白進行處理,以防止查詢結果中出現(xiàn)錯誤。

實現(xiàn)思路:(1)搜索面板的商品分類需要使用SpringDataSolr的分組查詢來實現(xiàn)。(2)為了提高查詢速度,最好提早將查問面板的品牌和規(guī)格的JSON參數(shù)數(shù)據(jù)放入redis。(3)查問條件的結構和面板的顯示和點擊消失需要使用AngularJS完成。(4)后端類別、商品品牌、規(guī)格、價錢區(qū)間查找需要過濾查詢完成。highlight options實現(xiàn)搜索關鍵字groupoptions的highlight顯示,設置分組選項,完成分類列表查詢功能。grouping entry set list

Storage服務器集群是文件上傳存儲的最終路徑,文件在Storage生成的子目錄和文件夾中存放,Storage生成的文件路徑采用的是多級分層樹形結構,組名/虛擬磁盤路徑/一級目錄(0-256)/二級目錄(0-256)/文件名.sh。.sh是FastDFS存儲文件后綴。

例:Group1/M00/02/44/wkgDrE82AASFHYTAAAAADKEITY34567.sh。

需要注意的是,F(xiàn)astDFS有許多優(yōu)化機制,Storage內置內存合并機制,也稱碎片合并,當碎片內存數(shù)量達到一定量時(一般是50個),Storage會優(yōu)化合并碎片,生成新內存。

2.2.4.1 文件上傳和下載流程

(1)文件上傳流程

當Tracker容器接收到更新文件的請求時,在Tracker容器中隨機選擇一臺服務器作為TrackerServer,當此Tracker接收到更新文件請求時,服務器會采用輪詢或者組剩余空間多的group作為存儲媒介。接著Tracker服務器會為已選好的group內分配一個存儲服務器給用戶,一般采用優(yōu)先級排序,在選擇好文件存儲目錄后,Storage服務器會默認生成二級子目錄和文件名。存儲服務器Storage會定時向Tracker服務器上傳文件存儲的信息狀態(tài),以便于Tracker準確查詢可用的Storage,并將存儲服務器的ip地址的端口號返回給客戶端。服務端上傳文件后存儲服務器將上傳的內容寫入對應的磁盤完成存儲。在資源文件中添加fdfs_client.conf,在控制層中添加方法執(zhí)行步驟(1)取文件的擴展名(2)創(chuàng)建一個FastDFS的客戶端(3)執(zhí)行上傳處理(4)拼接返回的url和ip地址,返回前端完整的url。前端AngularJs服務層異步post方法根據(jù)文件名從數(shù)據(jù)庫獲取圖片地址,控制層查找圖片地址并顯示。

(2)文件下載流程

當FastDFS執(zhí)行下載文件的操作時,首先由客戶端發(fā)送下載請求鏈接,Tracker從StorageServer上傳來的狀態(tài)信息查詢可用的Storage信息,并檢驗同步狀態(tài),查找完成后向Client發(fā)送Storage的ip地址和端口號。客戶端向StorageServer發(fā)送文件的相關信息(組名,路徑,文件名)等,StorageServer在內存結構中查找匹配對應的文件,如果查找成功,向Client返回文件相關信息,并提供下載。

2.2.5 網(wǎng)頁頁面靜態(tài)化實現(xiàn)(Freemarker)

網(wǎng)頁靜態(tài)化技術和緩存技術的共同點都是為了減輕數(shù)據(jù)庫的訪問壓力,但是具體的應用場景不同,緩存比較適合小規(guī)模的數(shù)據(jù),而網(wǎng)頁靜態(tài)化比較適合大規(guī)模且相對變化不太頻繁的數(shù)據(jù),網(wǎng)頁靜態(tài)化還有利于SEO(搜索引擎優(yōu)化),提高搜索顯示性能。

此技術實現(xiàn)需要交付ActiveMQ管理,頁面模塊調用freeMarkerConfigurer獲取配置對象,加載.ftl后綴的模板文件,創(chuàng)建map數(shù)據(jù)模型查詢并添加商品主表,擴展表,分類,SKU數(shù)據(jù),創(chuàng)建監(jiān)聽類生成頁面,模板頁面使用eval將圖片列表Json字符串轉換為對象并顯示,顯示購買數(shù)量的加減操作,商品類型面包屑和規(guī)格列表。頁面模塊在運營商管理商品模塊審核通過,商品狀態(tài)從待審核更新為上架,同時商品數(shù)據(jù)導入到索引庫,獲取商品的SKU列表,遍歷商品并將商品列表轉換為Json格式傳輸,遍歷商品id并調用jms模板send方法發(fā)布訂閱產生TextMessage。

2.3 系統(tǒng)部分功能實現(xiàn)

2.3.1 首頁展示

作為互聯(lián)網(wǎng)商城的門戶網(wǎng)站和訪問入口之一,本網(wǎng)站中主要包括的功能有輪播圖展示,條件搜索查詢框,全部商品分類樹形索引,猜你喜歡,近日推薦,主要頻道等如圖2所示。

(1)用戶點擊全部商品分類時可以看到商品分類的樹形結構詳細商品信息。

(2)用戶鍵入搜尋內容點擊搜尋按鈕時,頁面自動跳轉至搜索結果頁面,調用索引庫查詢數(shù)據(jù),查詢結果高亮顯示。耗時在0.5-0.8秒之間,用戶體驗良好。

(3)用戶點擊首頁圖片時,頁面跳轉至商品詳情頁面,用戶無需登錄。

本課題涉及的網(wǎng)站首頁全部采用AngularJS+html5動靜態(tài)結合的方式顯示,html5負責顯示頁面主體靜態(tài)框架,AngularJs負責完成參數(shù)從后端到前臺的綁定操作,完成數(shù)據(jù)動態(tài)化。

2.3.2 商家后臺展示

商家后臺添加商品基本信息,商品圖片,擴展屬性和商品規(guī)格,修改商家基本信息和登錄密碼等功能,商家后臺只對已經入駐商城的商家開放,商家登錄平臺后可以進行相關操作。

(1) 商家基本管理:包括商家基本資料的修改和登錄密碼的修改,修改資料包括公司名稱,公司手機,公司電話,公司詳細地址,聯(lián)系人姓名,聯(lián)系人QQ,聯(lián)系人手機,聯(lián)系人email,營業(yè)執(zhí)照號,組織機構代碼證,法定代表人,法定代表人身份證號,開戶行姓名,銀行賬號等如圖3所示,點擊保存后數(shù)據(jù)提交更新到數(shù)據(jù)庫。

(2) 新增商品: 商品基本信息(商品分類3級面包屑分類;商品名稱;品牌(下拉框選擇);價格;商品介紹;包裝列表和售后服務),商品圖片,擴展屬性和商品規(guī)格如圖4所示。

(3) 商品管理:對商家商品的增刪改查和提交運營商后臺審核基本操作如圖4所示。

2.3.3 個人中心展示

個人中心是用戶個人操作的部分,當用戶登錄商城后,商城后臺數(shù)據(jù)庫調用用戶信息顯示在用戶個人中心,包含用戶名,訂單中心,我的中心,物流消息與設置,訂單中心包括我的訂單,我的中心包括我的收藏和我的足跡,設置包括個人信息,地址管理和安全管理幾大部分如圖5所示。

網(wǎng)站頁面顯示用戶基本信息,安全退出等選項。

(1) 我的訂單:顯示已購買商品以及商品SPU(標準化產品單元)基本信息(商品圖片,商品名稱和商品規(guī)格,商品數(shù)量,實付金額和商品狀態(tài)),以及下單付款時間和訂單編號,商家名稱,用戶可以點擊確認收貨或立即付款,點擊立即付款將重定位回訂單結算頁面 ,點擊確認收貨將跳轉到收貨成功頁面。

(2) 我的收藏:顯示本用戶下收藏的商品基本信息和商品價格變動。

(3) 地址管理:用戶可以管理收貨地址信息,選擇默認地址以及地址添加和刪除。

(4) 安全管理:安全管理部分用戶可以更改用戶密碼和支付信息密碼等。

(5) 頁面分頁顯示,按照下單時間排序。

3、小結

本課題在當今電子商務行業(yè)的良好發(fā)展趨勢下,對互聯(lián)網(wǎng)商城進行整體的思路設計,核心功能開發(fā),實現(xiàn)和優(yōu)化,各個模塊服務之間的邏輯耦合關系和數(shù)據(jù)庫設計。本課題展示了關鍵技術的選型以及部分功能的設計實現(xiàn)。服務器集群和容器部署使得互聯(lián)網(wǎng)商城的整體性能和并發(fā)量訪問量顯著提升,為用戶,商家,運營商提供良好的界面服務和技術操作,符合當今時代下電商行業(yè)的發(fā)展態(tài)勢。

參考文獻:

[1] 張籍元,馬愛霞.醫(yī)藥電子商務B2C模式與O2O模式對比分析[J].中國藥物評價,2017,01:77-80.

[2] 彭非.B2B電子商務模式在我國的研究現(xiàn)狀及發(fā)展趨勢探析[J].金融經濟,2017,04:85-87.

[3] 謝麗霞,孫偉博.B2C電子商務信息系統(tǒng)操作風險評估方法研究[J].計算機應用與軟件,2016,09:43-35+71.

[4] 黃曦,張懷君.移動電子商務商業(yè)模式淺談[J].技術與市場,2016, 08:124+126.

[5] 耿慧慧,王萍.O2O電子商務顧客滿意度影響因素探究[J]電子商務,2017,02:44-45.

[6] 邵鵬,胡平.電子商務平臺商業(yè)模式創(chuàng)新與演變的案例研究[J].科研管理,2016,07:81-88.

[7] 王中鋒.大數(shù)據(jù)時代的電子商務服務模式革新[J].電子商務, 2017,03:18-19.

[8] 張晶,張珺.電子商務背景下企業(yè)營銷模式的創(chuàng)新方向[J].企業(yè)改革與管理,2017,02:118.

[9] DericSlavko.ELECTRONIC COMMERCE[J].Economics, 2017,04:38-45.

[10] RP Osca.conceptualization and research review[J]. Espacios,2017,38(61).

作者簡介:

張宇,學士,現(xiàn)就學于山西農業(yè)大學軟件學院,主要研究方向為軟件工程,Python;

劉德磊,副教授,現(xiàn)就職于山西農業(yè)大學軟件學院研究生導師,主要研究方向為軟件工程,Java和智能計算機與模式;

趙明浩,學士,現(xiàn)就學于山西農業(yè)大學軟件學院,主要研究方向為軟件工程;

丁逸凡,學士,現(xiàn)就學于山西農業(yè)大學軟件學院,主要研究方向為軟件工程;

張淑婧,學士,現(xiàn)就學于山西農業(yè)大學軟件學院,主要研究方向為軟件工程。

猜你喜歡
電子商務
小微企業(yè)電子商務平臺的開發(fā)與應用
O2O電子商務信任問題分析
O2O電子商務信任問題分析
遼寧大拇哥農業(yè)電子商務有限公司
電子商務法草案首審
2013年跨境電子商務那些事兒
電子商務:在對的時間做對的事