999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于分布式集群技術的SSM購物商城系統設計

2019-10-08 11:55:52童二寶彭戰軍
軟件 2019年8期

童二寶 彭戰軍

摘 ?要: aiBuy商城是一個基于J2EE的綜合性B2C電商平臺,用戶可以在商城內瀏覽和購買商品。aiBuy商城采用分布式集群技術,整合SSM框架來實現。使用Nginx作為圖片服務器、搭建Solr集群作為搜索服務器、Redis做緩存、ActiveMQ做消息中間件、Dubbo做服務中間件,SSO來實現單點登錄。aiBuy商城可以解決高并發、高可用和高性能等諸多問題。經過測試,該系統可以基本滿足用戶購物需求。

關鍵詞: J2EE;分布式集群;SSM;Redis;高并發

中圖分類號: TP391 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.08.029

本文著錄格式:童二寶,彭戰軍. 基于分布式集群技術的SSM購物商城系統設計[J]. 軟件,2019,40(8):123126

【Abstract】: aiBuy Mall is a comprehensive B2C e-commerce platform based on J2EE, users can browse and purchase goods in the mall. aiBuy Mall adopts distributed cluster technology and integrates SSM framework to achieve. Use Nginx as the image server, build the Solr cluster as the search server, Redis as the cache, ActiveMQ as the message middleware, HttpClient as the service middleware, and SSO to implement single sign-on. aiBuy Mall can solve many problems such as high concurrency, high availability and high performance. After testing, the system can basically meet the user's shopping needs.

【Key words】: J2EE; Distributed Cluster; SSM; Redis; High Concurrency

0 ?引言

隨著生活水平的提高,網上購物逐漸成為當下人們追求潮流的方式之一。購物大潮導致的直接問題就是購物網站系統的崩潰,這是由于服務器在高并發情況下承受的負載壓力過大,導致出現宕機現象。在如此環境下,設計可以承受高并發的電商平臺就顯得十分重要。

J2EE(Java2 Platform Enterprise Edition)[1]是SUN公司使用Java技術開發的一套企業級應用規范,它是為了簡化企業應用開發、管理和部署。J2EE采用了MVC分層設計模式[2],降低了組件之間的耦合度,大大減輕了客戶端和服務端的壓力。MVC包括了三大層:Model層(模型層)、View層(視圖層)、Controller層(控制層)。該系統以當前較為流行的輕量級SSM[3-5]框架(SpringMVC、Spring和MyBatis)為核心框架,摒棄了原始的SSH框架(Struts2、Spring和Hibernate),提高了開發效率,簡化了程序開發步驟。在MVC基礎上,再添加服務層(Service層)以及數據訪問層(Dao層),Controller層負責接收和處理來自View層的請求轉發,Service層負責業務邏輯處理,Dao層負責與數據庫交互,實現持久化操作。將SSM框架與目前火熱的分布式集群技術整合在一起,可以將各個功能模塊獨立出來,降低模塊之間的耦合性,方便進行分布式部署,就有望設計出一個可使用的大型網上購物平臺。

1 ?系統介紹

采用分布式系統架構的aiBuy商城系統的模塊劃分主要由以下幾部分組成:后臺管理模塊、前臺管理模塊、訂單生成模塊、商品搜索模塊、登錄(注冊)模塊以及訂單支付模塊等。后臺管理模塊主要完成對商品的管理(包含商品的增加)刪除、修改、查詢),以及用戶信息管理等;前臺系統包含商城的首頁顯示、用戶的注冊、登錄以及商品瀏覽等;訂單生成模塊主要是提供下單、訂單查詢、訂單修改以及訂單提交等服務;商品搜索模塊即提供商品的搜索功能,方便用戶;登錄(注冊)模塊實現用戶的注冊和登錄操作;訂單支付模塊提供支付服務。典型的分布式架構如圖1所示。

2 ?系統設計

2.1 ?開發環境

操作系統:Windows 7;數據庫服務器:MySQL 5.7,Redis 3.0.0;Web服務器:Tomcat 8.0,Nginx 1.8.0;開發工具:MyEclipse(自帶Maven 3.3.3插件);版本控制工具:SVN 1.8.0;JDK版本:JDK1.8.0。配置:主頻2.0 GHZ以上;內存:4G以上;硬盤:100G以上。

2.2 ?相關技術

系統后端是通過整合J2EE和SSM輕量級框架來實現,前端用戶界面采用EasyUI[6-7]框架實現。前后端是通過RESTful[8]架構來實現分離的。

(1)Spring框架。Spring為現代基于Java的在任何類型的部署平臺上的企業應用程序提供了全面的編程和配置模型。Spring的一個關鍵要素是應用程序級別的基礎架構支持:Spring專注于企業應用程序的“管道”,以便團隊可以專注于應用程序級業務邏輯,而無需與特定部署環境建立不必要的聯系。Spring框架包含兩大理念:IoC(控制反轉)和AOP(面向切面編程),這兩個理念大大簡化了Java的開發。

(2)SpringMVC框架。SpringMVC是Spring的一部分,SpringMVC旨在運用MVC架構的思想,來實現Web MVC設計模式,將Web層進行解耦,簡化日常的Web開發。MVC的模式圖如圖2所示。

(3)MyBatis框架。MyBatis是一款持久層框架,MyBatis相對于Hibernate,最明顯的優勢是避免了幾乎所有的JDBC代碼和手動設置參數以及獲取結果集,只需要簡單的XML或者注解配置就可以實現持久化。

(4)Redis數據庫。Redis數據庫是一個Nosql數據庫,是以Key-Value鍵值對的方式保存數據,主要應用于數據緩存、高并發下負載均衡和Session共享。aiBuy商城使用的是Redis的集群版,啟動了6個Redis實例,三主三從,這樣做的目的是在宕機情況下,最大可能地保證數據正確性和安全性。

(5)Nginx服務器。Nginx是一款開源的HTTP服務器和反向代理服務器,在aiBuy商城中,Nginx主要是作為圖片服務器、反向代理服務器以及負載均衡服務器使用。

(6)Solr集群。Solr是Apache下的一個開源 ?項目,它是基于Lucene的全文搜索服務器。Solr的集群版使用的是基于Solr和Zookeeper的集群方案SolrCloud,其中Zookeeper是作為集群的信息中心。SolrCloud有諸多優點,如:集中式的配置信息、自動容錯、查詢時自動負載均衡等。

2.3 ?系統功能模塊設計

整個系統的設計采用分布式系統架構實現,即把系統按照不同的模塊拆分成多個子系統,各個子系統之間通過調用接口來通信,增加或者刪除某個模塊不會對其它模塊產生影響,可以實現靈活的分布式部署。系統的架構設計如圖3所示,服務層按照執行模塊的不同,分別提供不同的接口服務,如商品服務、登錄服務、訂單服務以及支付服務等,這樣做的好處是降低了各個服務之間的耦合,當要增加一個服務模塊時,可以直接添加,不會對其它模塊產生影響;而用戶所要做的就是直接調用這些服務來完成購物操作,這個過程的實現要依靠RPC遠程調用服務,這里選擇Dubbo來實現。這些服務是以接口的形式表現,這些接口都統一采用RESTful格式。持久層的工作主要是對數據庫的數據進行操作(增刪改查),系統采用Mysql數據庫集群和讀寫分離(MyCat實現)來減輕數據庫的壓力,集群和讀寫分離均在Linux[9]環境下進行配置和運行,使用的是CentOS[10]版本。使用Redis集群來作為緩存,也可以大大減輕數據庫的壓力。

2.4 ?數據庫表結構設計

根據設計需求系統所需要的表有商品表、商品內容表、商品類目標、商品描述表、商品規格參數表、訂單表、用戶表等11個表。這些表均對應于程序中的實體類,以下列舉商品表相關信息,如表1所示:

3 ?系統實現

由于系統的模塊和功能較多,以下只介紹其中一些模塊的設計和實現。

3.1 ?后臺管理模塊

后臺管理模塊主要涉及的是對商品的信息進行管理,即對商品和商品規格進行CRUD(增刪改查)操作以及對用戶訂單進行處理。在設計商品表和商品規格表時,已經為不同的商品設置了不同的id,因此在對商品進行增刪改查時,只需要將指定商品的id設置到SQL語句中,在Dao層中對數據庫進行操作,就可以實現這一目的。以下程序段的功能是根據商品id查詢商品信息并返回。

public Item getItemById (long id) {

ItemExample ex = new ItemExample();

Criteria cri = ex.createCriteria();

cri.andIdEqualTo (id);

Listlist=itemMapper.selectByExample (ex);

if(list!=null && list.size() > 0){

Item item = list.get (0);

return item;

}

return itemMapper.selectByPrimaryKey (id);

}

3.2 ?購物車模塊

在購物車模塊設計中,首先要考慮的問題是用戶在登錄和未登錄兩種情況下將商品加入購物車(購物車在程序中是一個類),后臺應該怎樣保存商品信息。在用戶將商品加入到購物車時,通過在程序中加入攔截器來判斷用戶是否登錄,如果已登錄,則直接將購物車放入Redis緩存中;未登錄則將購物車放入cookie[11]中,待登錄后再放入Redis緩存中,這樣的設計類似于京東商城,可以確保用戶在登錄和未登錄情況下,均可以將商品加入購物車,購物車的設計框架如圖4所示。

3.3 ?支付模塊

支付模塊使用的是阿里巴巴旗下的Alipay(支付寶)技術實現,為了測試方便,整個支付操作是在支付寶的沙箱環境下進行,上線時會用真實環境。沙箱環境下可以不用提供真實的商戶appid(用于識別商戶的唯一ID)、商戶公鑰、私鑰等參數,支付寶的沙箱環境可以模擬出這些數據供使用。沙箱環境也會提供相關的Demo供測試,在把支付程序整合到整個項目中時,把支付作為一個單獨的服務,并對外提供調用接口。當用戶在商城中提交訂單并點擊支付時,程序會調用支付服務接口,并把訂單號、訂單名稱、付款金額、商品描述等信息作為參數傳遞給支付服務程序,用戶在支付時,可以選擇PC支付也可以使用移動端掃碼支付,且支付速度很快。以下是程序跳轉到支付寶界面進行支付的部分代碼,程序的首要任務是要根據傳遞過來的訂單號來獲得訂單信息,即獲得Order這個訂單對象。

@RequestMapping (value = “/goAlipay”, produces = “text/html; charset = UTF-8”)

@ResponseBody

public String goAlipay (String orderId, HttpServletRequest request, HttpServletRequest response) throws Exception {

Orders order = orderService.getOrderById (orderId);

Product product = productService. getProductById (order.getProductId());

4 ?結論

本文通過流行的SSM(SpringMVC、Spring和MyBatis)框架實現了一個網上商城系統設計,該系統實現了基本的網上購物操作,具有一定的實用價值。在系統設計上,采用了分布式架構設計,使得相互獨立的模塊能夠緊密聯系在一起,降低了系統之間的耦合性,提高了程序運行效率。經測試,系統能夠穩定運行,各個功能模塊的設計都很成功,達到了預期目的且系統的可擴展性很強,方便后續的改良和完善。

參考文獻

[1] 唐權. SSM框架在JavaEE教學中的應用與實踐[J]. 福建電腦, 2017(12): 93-94.

[2] 王金朔, 孫延輝. 基于SSM和Java的網上訂餐系統設計[J]. 信息通信, 2018, 190(10): 104-105.

[3] 錢春陽. 基于SSM的“互聯網+”數據銀行的設計與實現[J]. 電腦知識與技術, 2018, 14(18): 70-72.

[4] 龔夢星, 劉波, 黃天天, et al. 基于SSM框架與嵌入式系統的農村應急廣播系統設計[J]. 軟件, 2017(5): 51-56. .

[5] 吉豪杰. 大數據時代下基于SSM框架的高校畢業生檔案管理系統的研發設計[J]. 軟件, 2018, 39(11): 159-166.

[6] 謝孝淼. 基于JAVA技術的B2C電子商城網站系統設計與實現[J]. 信息通信, 2016(2).

[7] 戈家龍, 吳紅亞, 楊保華. 基于SSM的前后端分離電商網站的設計與實踐[J]. 電腦知識與技術, 2018, 14(13): 282-283.

[8] 王寬, 李紅信. 基于SSM的同城電商平臺的設計與實現[J]. 電腦知識與技術, 2018, 14(17) : 301-302.

[9] 文靜, 杜柯柯, 達文姣. 基于SSM的網上商城的開發與設計[J]. 電腦知識與技術: 學術交流, 2018, 14(3): 86-87.

[10] 江志剛. 基于SSM框架的網上題目錄入答題系統設計[J]. 無線互聯科技, 2017(20): 62-63.

[11] 龍文佳, 肖敏, 劉義. 基于分布式集群架構下的SSM電商購物平臺設計[J]. 電腦編程技巧與維護, 2019, 403(01): 45-47.

主站蜘蛛池模板: 国内精品视频区在线2021| 亚洲欧美一区二区三区蜜芽| www.youjizz.com久久| 日韩欧美中文字幕在线韩免费| 亚洲A∨无码精品午夜在线观看| 精品超清无码视频在线观看| 久久五月视频| 午夜国产不卡在线观看视频| 99视频在线精品免费观看6| 91色综合综合热五月激情| 亚洲精品动漫在线观看| 亚洲天堂视频在线播放| 欧美一级高清片欧美国产欧美| 亚洲一区第一页| 国产日韩久久久久无码精品| 在线无码私拍| 永久免费无码成人网站| 992Tv视频国产精品| 伊人激情久久综合中文字幕| 国产特一级毛片| 日本国产精品一区久久久| 色老头综合网| 九九久久99精品| 国产精品专区第1页| 欧美黑人欧美精品刺激| 欧美中文字幕在线二区| 喷潮白浆直流在线播放| A级毛片高清免费视频就| 97超碰精品成人国产| 最新无码专区超级碰碰碰| 99热这里只有精品5| 热久久国产| 日韩一区精品视频一区二区| 色九九视频| 国产成人精品2021欧美日韩| 国产剧情国内精品原创| 人妻21p大胆| 亚洲成人在线免费| 欧美一级黄色影院| 亚洲乱码精品久久久久..| 亚洲第一在线播放| 亚洲成人精品| 新SSS无码手机在线观看| 992Tv视频国产精品| 亚洲性影院| 久草视频精品| 国产亚洲欧美日韩在线一区| 88国产经典欧美一区二区三区| a毛片在线免费观看| 日韩无码真实干出血视频| 久久一本精品久久久ー99| 国产情精品嫩草影院88av| 亚洲精品天堂自在久久77| 日韩在线2020专区| 东京热av无码电影一区二区| 亚洲综合九九| 国产精品视频a| 亚洲精品成人片在线观看| 99免费视频观看| 一级爆乳无码av| 在线视频一区二区三区不卡| 久热中文字幕在线| 欧美一级99在线观看国产| 精品久久人人爽人人玩人人妻| 久久夜夜视频| 久久久久久久97| 国产白丝av| 色男人的天堂久久综合| 亚洲人成电影在线播放| 视频一本大道香蕉久在线播放| 91香蕉视频下载网站| 免费无码网站| 亚洲精品777| 亚洲国产精品VA在线看黑人| 国产成人精品一区二区三区| 99久久精品久久久久久婷婷| 91丝袜在线观看| 久久综合成人| 国产精品手机在线播放| 亚洲成人高清在线观看| 一区二区三区四区日韩| 在线a网站|