王民明 章嘯可 陸春燕 夏洋
摘 要:目前,我國電商在零售業(yè)中已經(jīng)占據(jù)著主導作用,跨境電子商務(wù)已經(jīng)成為經(jīng)濟增長新的增長點,打造全新的跨境電商平臺已經(jīng)成為行業(yè)迫切的需求。文章主要介紹了一種跨境電子商務(wù)借賣軟件系統(tǒng),詳細介紹了系統(tǒng)使用的3種主要技術(shù)、框架與模塊的設(shè)計與實現(xiàn)。
關(guān)鍵詞:跨境;電子商務(wù);借賣系統(tǒng)
跨境電子商務(wù),是我國“一帶一路”國家戰(zhàn)略的重要實施途徑,也是供給側(cè)結(jié)構(gòu)性改革的有效推動力。在傳統(tǒng)出口貿(mào)易增速減緩的情況下,跨境電子商務(wù)以30%以上的年增長率迅猛發(fā)展,為中國經(jīng)濟發(fā)展作出了重要貢獻。
跨境電子商務(wù)產(chǎn)業(yè)鏈具有打造國際貿(mào)易和跨境消費新業(yè)態(tài),具有實現(xiàn)產(chǎn)業(yè)整合的功能。這一功能在助推我國由“世界工廠”向“世界商店”的升級過程中,將起到重要的作用。M2B2C跨境電商交易模式可以較好地解決B2C出口模式面臨的困境,是實現(xiàn)電商產(chǎn)業(yè)功能的主要載體[1]。
為此,我們開發(fā)了跨境電子商務(wù)借賣系統(tǒng)。系統(tǒng)基于Java開發(fā),采用了Spring+SpringMVC+Mybatis框架。實現(xiàn)了與ebay系統(tǒng)的對接,可以對ebay上商品的數(shù)據(jù)進行推送與拉取,從而實現(xiàn)了跨境交易。
1 主要技術(shù)簡介
1.1 Redis集群與單點登錄
使用ShardedRedis做登錄緩存。用兩臺redis集群進行存儲。設(shè)計MermerHashing算法。Cookie用登錄mall_login做cookie名,用sessionId做value進行唯一標識進行存儲。隨后再用sessionId做redis緩存的key,將用戶信息轉(zhuǎn)換成string存到value中,讀取性能快,性能好,更安全。
1.2 MermerHash算法
MurmurHash是一種非加密型哈希函數(shù),適用于一般的哈希檢索操作。Redis在實現(xiàn)字典時用到了MurmurHash,包括數(shù)據(jù)庫、集群、哈希鍵、阻塞操作等功能都用到了這個算法。系統(tǒng)使用MurmurHash3,速度快,實現(xiàn)了32位、128位HashKey,對大塊的數(shù)據(jù)具有較高的平衡性與低碰撞率。
1.3 Redis分布式
系統(tǒng)使用Redis作緩存服務(wù),剛開始時只用一臺Redis就能夠滿足服務(wù),隨著項目的深入,發(fā)現(xiàn)一臺滿足不了現(xiàn)有的項目需求,因為Redis操作都是原子性這樣的特性,造成有時同時讀寫緩存造成查詢效率的下降。為此,采用ShardedJedis來實現(xiàn)分布式緩存。ShardedJedis是通過一致性哈希來實現(xiàn)分布式緩存的,通過一定的策略把不同的key分配到不同的redis server上,達到橫向擴展的目的。
2 系統(tǒng)框架設(shè)計
系統(tǒng)中主要設(shè)計了3種角色:品牌商、賣家、平臺管理員。品牌商在平臺申請入駐,后臺管理進行認證審核,通過平臺認證并入駐的品牌商,可以在平臺管理維護發(fā)布自己的品牌商品;賣家在實際生產(chǎn)環(huán)境中入駐平臺的賣家需要在ebay擁有自己的店鋪,賣家可以通過平臺瀏覽選擇品牌商發(fā)布的商品,并推送到賣家在ebay的網(wǎng)店進行銷售,同時賣家可以拉取網(wǎng)店銷售訂單到交易平臺,對借賣的商品訂單進行跟蹤和管理;平臺管理員可對用戶權(quán)限、平臺商品信息、訂單信息進行監(jiān)控管理。系統(tǒng)運行關(guān)系如圖1所示。
圖1 系統(tǒng)運行關(guān)系
系統(tǒng)需要服務(wù)于多用戶,因此服務(wù)端采用了負載均衡技術(shù)。
該系統(tǒng)架構(gòu)使用Tomcat分布式redis集群架構(gòu)。用戶在請求系統(tǒng)時,首先接收到的是nginx服務(wù)器,做負載均衡分發(fā)使用,接著分發(fā)到兩個Tomcat上,Tomcat在接收到用戶登錄請求時。將sessionid獲取到,做cookie的value,cookie的name,將cookie寫入用戶的硬盤中。
將sessionid作為唯一標識。做redis緩存服務(wù)器的key,value則是用戶信息。登錄成功之后則將用戶json序列化成json字符串形式,存入redis中,這樣每次請求去獲取固定cookie的value。再用value找對應(yīng)的用戶信息。這里使用的MermerHashing的一致性算法,則可以保證命中率。讀取到用戶登錄信息之后,接著就是用mybatis去進行dao層的操作。系統(tǒng)部署如圖2所示。
圖2 系統(tǒng)部署
3 系統(tǒng)設(shè)計
本系統(tǒng)分為移動端與PC端兩個部分,功能模塊有:商品模塊、用戶模塊、訂單模塊、支付模塊、B2C模塊、信用模塊。
商品由品牌商進行發(fā)布。發(fā)布則可以讓借買方進行各種采購、關(guān)注等操作。借買方也有權(quán)對商品進行歷史價格查看等操作。競價拍賣必須從已發(fā)布的商品中選取。品牌商則是對該商品的狀態(tài)、名稱、類別、價格、細節(jié)進行及時更新與修改。
用戶模塊主要功能為登錄和注冊、權(quán)限管理。登錄之后即可進行訂單模塊的操作。用戶模塊的職責權(quán)力分為品牌商、借賣商。只有被審核的用戶才能進行開店操作進入店鋪模塊[2]。
訂單模塊擁有下單之前的操作,可以對購物車進行增刪改查4個操作。特別機制在于該品牌商不能將自己發(fā)布的商品進行加車處理,避免了虛假購物的情況。將購物車中的狀態(tài)為1的商品全部進行下單操作。下單有母訂單和子訂單操作。母訂單存儲信息有訂單id,總價,下單時間,支付方式,收貨時間,評價時間等各個操作。子訂單是每個商品的詳細信息。假如訂單超過兩小時未付款,訂單巡查將會自動關(guān)閉該訂單,并且無法繼續(xù)進行支付操作。
支付模塊有錢包支付和支付寶支付兩種模式,支付寶支付對接沙箱,請求發(fā)到api,返回地址,下單前端定時器進行輪詢,等到付款成功,輪詢結(jié)束。跳到付款成功頁面。如果用戶選擇錢包支付,即可對該訂單進行支付處理。假如錢包余額不足,會提示余額不足,建議用戶進行支付寶充值操作。
B2C模塊實現(xiàn)與ebay的對接,主要完成商品推送與訂單拉取。商品推送時,使用eBay所給的addItem接口和網(wǎng)關(guān),前端列出商品。包括id,將前端傳的id進入后端查詢,將查出的商品用eBay給的api格式進行賦值,再進行調(diào)用,eBay則通過指定的網(wǎng)關(guān)上傳到了沙箱中。用戶點擊商品右下角箭頭,即可對該商品進行eBay上傳操作,省時方便。訂單拉取時使用eBay給的api網(wǎng)關(guān)接口GetOrders進行調(diào)用。將參數(shù)轉(zhuǎn)化成自己想要的結(jié)果,json序列化傳到前端,可賦值訂單狀態(tài),訂單號進行篩選。用戶假如是品牌商,則可以有校驗,進行后臺訂單拉取。
信用模塊主要用于記錄用戶完成交易情況。買家擁有一定的基礎(chǔ)分,當買家申請分期支付成功時,每次都有最低還款日期。定時任務(wù)開始。假如輪詢到超過時間未還款,則郵件提示用戶需還款。redis計時器開始計時。如未能按期付款,將扣除相應(yīng)的信用分。當買家正常完成交易時,會增加相應(yīng)的信用分,賣家可以看到買家的信用情況。
4 結(jié)語
目前,系統(tǒng)已成功部署到騰訊云上,各模塊運行穩(wěn)定,系統(tǒng)響應(yīng)迅速。項目處于內(nèi)測階段,還在不斷地完善中。