基于微服務(wù)的新星購物電商系統(tǒng)_第1頁
基于微服務(wù)的新星購物電商系統(tǒng)_第2頁
基于微服務(wù)的新星購物電商系統(tǒng)_第3頁
基于微服務(wù)的新星購物電商系統(tǒng)_第4頁
基于微服務(wù)的新星購物電商系統(tǒng)_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于微服務(wù)的新星購物電商系統(tǒng)的設(shè)計與實現(xiàn)摘要:這幾年來,隨著互聯(lián)網(wǎng)的技術(shù)的快速發(fā)展和人們生活水平和質(zhì)量的不斷上升,在網(wǎng)上購買物品逐漸成為了人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?,所以電子商?wù)系統(tǒng)使用的技術(shù)也經(jīng)歷了非常快速的發(fā)展。隨著業(yè)務(wù)的擴(kuò)展和需求的迭代,電子商務(wù)平臺往往需要支持越來越多的功能。對于傳統(tǒng)的單架構(gòu)電子商務(wù)平臺的開發(fā)與實現(xiàn),隨著需求的增長,函數(shù)間耦合嚴(yán)重,代碼難以維護(hù),在線成本高,服務(wù)的可擴(kuò)展性等問題將越來越嚴(yán)重。針對單體系結(jié)構(gòu)電子商務(wù)平臺存在的這些問題,實現(xiàn)了一個基于微服務(wù)體系結(jié)構(gòu)的電商系統(tǒng)平臺。根據(jù)業(yè)務(wù)功能的界限,系統(tǒng)分為六個相對獨(dú)立的業(yè)務(wù)服務(wù),包括商品微服務(wù),商品搜索微服務(wù),訂單支付微服務(wù),購物車管理微服務(wù),用戶中心和認(rèn)證服務(wù)。每項服務(wù)都經(jīng)過單獨(dú)設(shè)計和實施,有效地減少了系統(tǒng)各個模塊之間的耦合,提高了系統(tǒng)的靈活性。除了業(yè)務(wù)服務(wù)模塊外,還利用Springcloud的Eureka,Zuul,Config服務(wù)器和Feign等組件分別實現(xiàn)了服務(wù)日志發(fā)現(xiàn),路由網(wǎng)關(guān)轉(zhuǎn)發(fā),分布式配置管理和聲明式接口等功能。關(guān)鍵詞:購物,微服務(wù),互聯(lián)網(wǎng)

Designandimplementationofmicro-service-basedNovashoppinge-commercesystemAbstract:Overthepastfewyears,withtherapiddevelopmentofInternettechnologyandthecontinuousimprovementofpeople'slivingstandardsandquality,buyinggoodsonlinehasgraduallybecomeanindispensablepartofpeople'sdailylives,sothetechnologyusedbye-commercesystemshasalsoexperiencedveryfastdevelopmentof.Withtheexpansionofbusinessanditerationofrequirements,e-commerceplatformsoftenneedtosupportmoreandmorefunctions.Forthedevelopmentandimplementationofthetraditionalsingle-architecturee-commerceplatform,withthegrowthofdemand,thecouplingbetweenfunctionsisserious,thecodeisdifficulttomaintain,theonlinecostishigh,andthescalabilityofserviceswillbecomeincreasinglyserious.Inresponsetotheseproblemsinthesingle-architecturee-commerceplatform,ane-commercesystemplatformbasedonmicro-servicearchitectureisimplemented.Accordingtotheboundariesofbusinessfunctions,thesystemisdividedintosixrelativelyindependentbusinessservices,includingcommoditymicroservices,commoditysearchmicroservices,orderpaymentmicroservices,shoppingcartmanagementmicroservices,usercenters,andauthenticationservices.Eachservicehasbeenindividuallydesignedandimplemented,effectivelyreducingthecouplingbetweenthevariousmodulesofthesystemandincreasingtheflexibilityofthesystem.Inadditiontothebusinessservicemodule,italsousesSpringcloud'sEureka,Zuul,Configserver,andFeigncomponentstoimplementservicelogdiscovery,routinggatewayforwarding,distributedconfigurationmanagement,anddeclarativeinterfaces.Keywords:E-commerce,microservices,platforms目錄TOC\o"1-3"\h\u第1章緒論 第1章緒論1.1系統(tǒng)開發(fā)的背景及意義所謂的電商購物系統(tǒng),是能夠支付網(wǎng)上交易和支付金錢的全過程,所以就具有網(wǎng)上付款,網(wǎng)上購買,產(chǎn)品廣告和網(wǎng)上詢問等功能,主要體現(xiàn)在網(wǎng)上購物和網(wǎng)上支付。從自身角度來看,方便了購物,省下了時間;從企業(yè)角度來看,提高了商品的知名度和擴(kuò)散度,使得買賣雙方節(jié)省了一定的金錢。互聯(lián)網(wǎng)的快速發(fā)展,使得電商系統(tǒng)應(yīng)運(yùn)而生,并且推廣速度極快,給當(dāng)今傳統(tǒng)企業(yè)或現(xiàn)代企業(yè)帶來了巨大的影響和無限的商機(jī)?;ヂ?lián)網(wǎng)和全球信息網(wǎng)絡(luò)應(yīng)用的快速發(fā)展為企業(yè)提供了一個無邊界、永恒和地理便利的經(jīng)營和拓展業(yè)務(wù)環(huán)境,開發(fā)電商系統(tǒng)是提升企業(yè)競爭力的強(qiáng)有力的手段之一。它是傳統(tǒng)業(yè)務(wù)和創(chuàng)新技術(shù)在激烈的市場競爭中迸發(fā)而出的完美產(chǎn)物,為企業(yè)提供了新的商機(jī)和管理模式。1.2國內(nèi)外研究現(xiàn)狀這幾年來看,隨著互聯(lián)網(wǎng)技術(shù)和網(wǎng)上支付的技術(shù)等相關(guān)技術(shù)的飛速增長,互聯(lián)網(wǎng)慢慢的改變著人們的生活方式?;ヂ?lián)網(wǎng)是收集信息的良好方式,并逐漸的在發(fā)展。因此,電商系統(tǒng)勢必會是以后的主流,會有更多的實體公司有計劃的建立網(wǎng)上商城,向消費(fèi)者表現(xiàn)一種全新的購物手法,所以會成為了一個新的銷售行業(yè),電商購物系統(tǒng)的優(yōu)點(diǎn)已經(jīng)是被很多的人所發(fā)現(xiàn)并接受。但是從時間方面上來看,提出開發(fā)的電子商務(wù)平臺時間不長,但發(fā)展速度已達(dá)到驚人的程度。國外許多網(wǎng)站,不僅提供在線瀏覽,瀏覽,購物等功能,而且提供更人性化的在線測試等功能,利用圖像技術(shù),可以讓人們先觀看詳情詳情后再去打算是否購買。讓人體會到網(wǎng)上購物的種種優(yōu)點(diǎn)。在我們國家,電商系統(tǒng)起步相對于別的比較晚,但是它的發(fā)展勢頭很猛,壓根難以抗拒,在短短幾年期間,各大電子商務(wù)企業(yè)成倍增長,紛紛登頂,躍躍欲試。同時,國家的政策的大力鼓勵嗎,為我國的電商網(wǎng)站的多種化,國際化,實用化打下了堅實的基礎(chǔ)。根據(jù)一些報告可以看出目前的總體趨勢,在線購物中心的未來將不可避免地成為市場不可分割的一部分。1.3微服務(wù)電商平臺微服務(wù)電商平臺是公司資深架構(gòu)組基于“高內(nèi)聚、低耦合”的戰(zhàn)略思想搭建的開發(fā)快速、服務(wù)運(yùn)行獨(dú)立的平臺,封裝了Springcloud、Redis、ElasticSearch等底層組件,易于與Idea集成工具結(jié)合開發(fā),通過Maven下載所需依賴,就可以構(gòu)建完整的項目依賴。利用Node.js及Vue.js技術(shù)棧,實現(xiàn)前后端分離開發(fā);通過Nginx反向代理可以實現(xiàn)通過本地域名來訪問我們的電商購物系統(tǒng);我們的網(wǎng)站的權(quán)限管理和控制采用的是JWT鑒權(quán)策略,對使用者和一些私密的接口進(jìn)行了某些權(quán)限方面的控制;利用FastDFS解決大數(shù)據(jù)量的分布式文件存儲問題,利用Elasticsearch高級聚合功能,實現(xiàn)商品的智能過濾搜索,利用RabbitMQ實現(xiàn)可靠消息服務(wù),解決服務(wù)間通信問題和解決分布式事務(wù)問題。利用Redis搭建高可用集群,實現(xiàn)可靠緩存服務(wù)即熱點(diǎn)數(shù)據(jù)保存。1.4論文的主要研究內(nèi)容、相關(guān)技術(shù)和目標(biāo)1.4.1 研究的主要內(nèi)容新星購物電商系統(tǒng)的核心技術(shù)主要在于多線程和高并發(fā),后臺的數(shù)據(jù)庫主要采用的是MYSQL數(shù)據(jù)庫。研究的主要內(nèi)容有以下幾點(diǎn):用戶中心:注冊用戶、使用者的登錄、使用者瀏覽商品并實現(xiàn)購物、產(chǎn)生訂單等。購物車微服務(wù):使用者能夠在我的購物車中添加自己喜歡的商品、修改想要購物的商品數(shù)量、刪除不想要的商品、清空自己的購物車商品等。訂單微服務(wù):通過購物車中商品生成訂單、查看我的訂單、查看某個訂單的詳細(xì)、訂單在線支付等。商品微服務(wù):商品的上下架、商品圖像上傳、查看商品詳細(xì)信息、編輯商品、刪除商品。搜索微服務(wù):準(zhǔn)確的搜索推薦、搜索過濾等。支付服務(wù):微信支付、貨到付款。1.4.2 相關(guān)技術(shù)前端技術(shù)前臺系統(tǒng)使用的是HTML頁面,頁面的樣式是通過CSS來控制的,并且通過JavaScript來達(dá)到一些前端實現(xiàn)的功能。后臺頁面是使用vue來寫的,利用axios來調(diào)用后臺接口。二維碼的生成是通過QRCode.js來實現(xiàn)的。后端技術(shù)整體使用的是spring框架,數(shù)據(jù)庫用的是MySQL和Redis,搜索索引庫用的是Elasticsearch,域名代理用的是Nginx,文件上傳是通過FastDFS來實現(xiàn)的。消息隊列使用的是RabbitMQ,數(shù)據(jù)庫層用的是MyBatis3。1.4.3 目標(biāo)本課題最終預(yù)計達(dá)到如下幾個目標(biāo):(1)界面的設(shè)計好看養(yǎng)眼,用戶有良好的交互感覺。(2)功能獨(dú)立性強(qiáng):商品、訂單、搜索、支付等服務(wù)相對而言比較獨(dú)立。(3)滿足用戶對購物的大部分需求,系統(tǒng)性能的反應(yīng)速度滿足如今快節(jié)奏生活的需求。

第2章系統(tǒng)需求分析2.1 系統(tǒng)的需求分析新星購物電商系統(tǒng)的整體框架主要分為兩個部分,一部分是前臺的商城功能,包括使用者注冊,網(wǎng)上購物,訂單管理,網(wǎng)上付款等操作;另一部分是后臺管理系統(tǒng)的功能,這一部分包括:商品規(guī)格參數(shù)的增刪改查,商品的增刪改查,品牌的增刪改查。新星購物電商系統(tǒng)功能如圖2.1所示:新星購物電商系統(tǒng)的需求如下圖2.1: 圖2.1系統(tǒng)功能圖前臺商城模塊:(1)使用者注冊:使用者注冊成為為網(wǎng)上商城的用戶。使用者注冊商城賬號的時候只需要填寫使用者姓名、使用者密碼、使用者聯(lián)系電話即可。(2)商品瀏覽:使用者瀏覽商城系統(tǒng),將自己喜歡并且想要購買的部分商品放入到自己的購物車當(dāng)中,也能夠在商品的詳情頁中添加商品到購物車中,可連續(xù)添加商品。(3)購物:用戶選完商品后就進(jìn)入到自己的購物車頁面,可以看到自己喜歡并且想要購買的東西,而且還能夠修改某一個物品的數(shù)量和刪除某些商品、甚至可以清空整個購物車。(4)訂單功能:顧客確定購物車中的商品后提交訂單,然后等待用戶支付,用戶付款完成后,等待商家后臺的反應(yīng),成功支付就會進(jìn)入物流階段。后臺管理模塊:(1)品牌管理部分:網(wǎng)站的擁有者可以對品牌的各種參數(shù)進(jìn)行增、刪、改、查等相關(guān)操作。(2)商品管理部分:網(wǎng)站的擁有者可以添加、修改、查詢、刪除商品。并可以編寫商品詳情信息,對商品的價格,顯示的圖片等進(jìn)行增刪改操作。2.2 數(shù)據(jù)流圖1.購物系統(tǒng)的數(shù)據(jù)流圖頂層圖如下: 頂層數(shù)據(jù)流圖分別有兩種角色:管理員與會員。頂層數(shù)據(jù)流圖描述了會員與管理員各自可以操作功能模塊,產(chǎn)生的數(shù)據(jù)流等。如下圖2.2所示:圖2.2網(wǎng)上購物系統(tǒng)的頂層圖2.購物系統(tǒng)的用戶功能數(shù)據(jù)流圖如下:用戶的數(shù)據(jù)流圖標(biāo)明了用戶可實現(xiàn)的各種操作,也表明了各種操作成功失敗后了后果,讓人對用戶的權(quán)限和功能一目了然,同時數(shù)據(jù)的流向也是很清晰的。如下圖2.3所示:圖2.3 用戶功能的數(shù)據(jù)流圖3.查詢功能的數(shù)據(jù)流圖如下: 下圖描述了商品查詢功能的數(shù)據(jù)流向情況,將各種操作細(xì)化,可以得到如下圖2.4所示的數(shù)據(jù)流圖:圖2.4 查詢的數(shù)據(jù)流圖2.3 數(shù)據(jù)字典(1)數(shù)據(jù)存儲描述表2-1給出了用戶信息的具體組成數(shù)據(jù)。表2-1用戶信息描述數(shù)據(jù)流用戶信息數(shù)據(jù)流出處數(shù)據(jù)庫的用戶表。數(shù)據(jù)去處用戶界面。數(shù)據(jù)流構(gòu)成用戶名,用戶密碼。表2-2給出了訂單管理的具體組成數(shù)據(jù)。表2-2訂單管理描述數(shù)據(jù)流訂單管理信息數(shù)據(jù)流出處數(shù)據(jù)庫的訂單表數(shù)據(jù)去處用戶訂單詳情界面數(shù)據(jù)流構(gòu)成用戶ID、訂單ID、商品名、訂單支付狀態(tài),創(chuàng)建訂單的時間,支付的時間。表2-3給出了商品信息的具體組成數(shù)據(jù)。表2-3商品管理描述數(shù)據(jù)流商品信息數(shù)據(jù)流出處數(shù)據(jù)庫的商品表、商品sku表,商品規(guī)格參數(shù)表數(shù)據(jù)去處搜索商品界面、商品詳情界面數(shù)據(jù)流構(gòu)成id、商品名稱、價格、照片、描述、商品的規(guī)格參數(shù)、分類、上下架(2)數(shù)據(jù)處理描述表2-4描述了用戶在注冊頁面輸入正確用戶名、密碼和驗證碼,系統(tǒng)對輸入的數(shù)據(jù)進(jìn)行驗證,如果數(shù)據(jù)庫里沒有存在此數(shù)據(jù)顯示注冊成功。表2-4用戶身份驗證處理邏輯名稱用戶注冊驗證簡述檢查輸入信息的合法性輸入的數(shù)據(jù)流用戶名+密碼+驗證碼處理過程驗證用戶輸入的用戶名、密碼和驗證碼與數(shù)據(jù)庫的用戶表存在是否一致輸出的數(shù)據(jù)流用戶登錄、商品信息表2-5具體描述了當(dāng)用戶成功登錄系統(tǒng)后,通過商品名搜索商品的信息,再根據(jù)查詢后返回的數(shù)據(jù)顯示在界面上。表2-5商品信息搜索處理邏輯名稱商品信息搜索簡述檢查輸入信息的合法性輸入的數(shù)據(jù)流商品名處理過程通過用戶輸入商品名進(jìn)行數(shù)據(jù)庫檢索,查詢具體商品信息輸出的數(shù)據(jù)流訂單信息,商品信息。2.4 實體關(guān)系圖(E-R圖)商品信息實體有商品名稱,圖片,描述,二級類別等,具體如圖2.5所示: 圖2.5 商品信息E-R圖訂單信息實體有訂單狀態(tài),訂單創(chuàng)建時間,訂單編號等,具體如圖2.6所示: 圖2.6 訂單信息E-R圖系統(tǒng)整體的實體ER圖,用戶可以添加購物車,有多個收貨地址,對應(yīng)多個商品,詳情如圖2.7所示:圖2.7 系統(tǒng)E-R圖2.5 本章小結(jié)本章對系統(tǒng)的整體功能進(jìn)行了分析,設(shè)計了用戶、商品、訂單、搜索等微服務(wù)功能模塊,也對這些功能模塊進(jìn)行了詳細(xì)的分析,明確了各個功能的定位和需求,也確定了各個功能之間的聯(lián)系,明確它們的作用,對接下來的開發(fā)有很大的幫助。

第3章系統(tǒng)設(shè)計3.1系統(tǒng)設(shè)計3.1.1系統(tǒng)總體架構(gòu)設(shè)計圖3.1系統(tǒng)總體架構(gòu)由圖可知,新星購物電商平臺總體架構(gòu)分為三層:表現(xiàn)層:用到的技術(shù)vue、node.js、WebPack打包工具。業(yè)務(wù)層:商品微服務(wù),訂單微服務(wù),搜索微服務(wù),購物車微服務(wù),支付服務(wù),為各類業(yè)務(wù)開發(fā)提供公用接口,提供系統(tǒng)基礎(chǔ)服務(wù)設(shè)施,使得業(yè)務(wù)開發(fā)能夠快速便捷,采用“高內(nèi)聚、低耦合”思想進(jìn)行開發(fā),使得各個具體業(yè)務(wù)之間減少依賴,運(yùn)行靈活。數(shù)據(jù)層如圖所示,主要分為三部分:數(shù)據(jù)存儲部分,使用了MySQL關(guān)系型數(shù)據(jù)庫來存儲重要的數(shù)據(jù),Redis分布式緩存數(shù)據(jù)庫來存取一些讀取要求高的數(shù)據(jù),ElasticSearch分布式索引庫來存取商品信息數(shù)據(jù);數(shù)據(jù)訪問部分,包含Model、Mapper等查詢與結(jié)果集映射接口;系統(tǒng)框架部分,采用基于SpringCloud與SpringBoot搭建的一站式微服務(wù)系統(tǒng),包含服務(wù)的注冊、客戶端的負(fù)載均衡、系統(tǒng)的全局配置、熔斷器與服務(wù)網(wǎng)關(guān)等一系列微服務(wù)組件。3.1.2數(shù)據(jù)庫設(shè)計新星電商購物系統(tǒng)使用MYSQL數(shù)據(jù)庫來存儲重要數(shù)據(jù)。本小章節(jié)對系統(tǒng)用到的數(shù)據(jù)庫表的結(jié)構(gòu)進(jìn)行了詳細(xì)的設(shè)計。根據(jù)第三章的系統(tǒng)需求分析,系統(tǒng)需要建立一些數(shù)據(jù)庫表來保存一些相關(guān)的信息,如商品信息、品牌信息、商品分類信息等一些數(shù)據(jù)庫,以下是對上述一些主要數(shù)據(jù)庫表的設(shè)計:Tb_brand(品牌信息)表表3-1Tb_brand表列名數(shù)據(jù)類型可為空注釋idlong(30)NOTNULL品牌idnamevarchar(32)NOTNULL品牌名稱imagevarchar(128)DEFAULT''品牌圖片地址lettervarchar(1)NOTNULLDEFAULT''品牌的首字母表3-1給出了存放商品信息的數(shù)據(jù)庫表結(jié)構(gòu),表中各字段代表的含義在第四列“注釋”中有具體描述,該表的主鍵為id。tb_category(商品類目)表該表為商品分類表,用于保存商品的分類信息。表結(jié)構(gòu)如表3-2所示:表3-2tb_category表列名數(shù)據(jù)類型可為空注釋idlong(20)NOTNULL分類的idnamechar(32)NOTNULL分類的名稱parent_idlong(20)NOTNULL父親節(jié)點(diǎn)的id,最高級填0isParentintagr(1)NOTNULL是否是父節(jié)點(diǎn),0為否,1為是sortint(10)NOTNULL排序sku(具體的商品實體)表該表為具體的商品實體表,用于記錄商品的基本信息,表結(jié)構(gòu)如表3-3所示:表3-3sku表列名數(shù)據(jù)類型可為空注釋idbigint(20)NOTNULLskuidspu_idbigint(20)NOTNULLspuidtitlevarchar(256)NOTNULL商品標(biāo)題imagesvarchar(1024)DEFAULT''商品的圖片pricebigint(15)NOTNULLDEFAULT0銷售價格,單位為分indexesvarchar(32)DEFAULT''特有規(guī)格屬性在spu屬性own_specvarchar(1024)DEFAULT''sku的特有規(guī)格參數(shù)鍵值對enableint(1)NOTNULL是否有效,0為無效,1為有效createTimedatetimeNOTNULL添加商品的時間lastUpdateTimedatetimeNOTNULL最后修改商品的時間spu(抽象性的商品)表表3-4spu表列名數(shù)據(jù)類型可為空注釋idlong(20)NOTNULL主鍵titlevarchar(128)NOTNULLDEFAULT''標(biāo)題sub_titlevarchar(256)DEFAULT''子標(biāo)題cid1bigint(20)NOTNULL1級類目idcid2bigint(20)NOTNULL2級類目idcid3bigint(20)NOTNULL3級類目idbrand_idlong(50)NOTNULL商品歸屬的品牌idsaleableint(1)NOTNULL是否上架,0為已下架,1為已上架validint(1)NOTNULL是否有效,0為已刪除,1有效createTimedatetimeNOTNULL創(chuàng)建商品的具體的時間節(jié)點(diǎn)lastUpdateTimedatetimeDEFAULTNULL最后修改的時間節(jié)點(diǎn)表結(jié)構(gòu)如上表3-4所示,該表為抽象的商品,比如華為手機(jī),用于記錄商品的抽象信息。tb_spec_param(規(guī)格參數(shù)組下的參數(shù)名表)表該表為規(guī)格參數(shù)組下的參數(shù)名表,表結(jié)構(gòu)如表3-5所示:表3-5tb_spec_param表列名數(shù)據(jù)類型可為空注釋idlong(20)NOTNULL規(guī)格參數(shù)表的主鍵cidbigint(20)NOTNULL商品分類idgroup_idbigint(20)NOTNULLname插入(250)NOTNULL商品的參數(shù)名numericLong(1)NOTNULL是否是數(shù)字類型參數(shù),true或者是falseunitvarchar(150)NOTNULL''數(shù)字類型的單位,非數(shù)字類型的為空genericlong(1)NOTNULL是否是商品普遍的屬性,true或者是falsesearchinglong(1)NOTNULL是否可以用來做搜索過濾的字段,true或者是falsesegmentsvarchar(1024)DEFAULT''數(shù)值類型參數(shù)3.1.3系統(tǒng)的功能模塊設(shè)計1.用戶注冊模塊 用戶注冊是用戶能夠登陸新星購物系統(tǒng)的前提,用戶想體驗完整的購物體驗必須先要進(jìn)行注冊。用戶注冊流程具體如下,進(jìn)入注冊頁面,填寫注冊信息,前端會驗證輸入的格式問題,當(dāng)驗證無誤后,再到服務(wù)器驗證,服務(wù)器驗證也無誤后,用點(diǎn)擊“注冊”按鈕進(jìn)行用戶注冊,系統(tǒng)會對用戶輸入的手機(jī)接收的驗證碼進(jìn)行驗證,驗證成功跳到登錄頁面。具體的流程圖如下圖3.2所示:圖3.2 用戶注冊流程圖2.用戶登錄模塊用戶在登錄頁面輸入用戶名跟密碼,點(diǎn)擊登錄按鈕,服務(wù)器進(jìn)行數(shù)據(jù)驗證,存在此用戶則登陸成功,用戶名不存在或密碼錯誤,出現(xiàn)登錄失敗,用戶重新登錄,具體的流程圖如下圖3.3所示:圖3.3 用戶登錄模塊3.搜索商品模塊 搜索商品模塊是用Elasticsearch索引庫做的,所以他的搜索速度是十分快的,而且可以根據(jù)商品的規(guī)格參數(shù)進(jìn)行搜索,點(diǎn)擊對應(yīng)的商品參數(shù),就會顯示相應(yīng)的商品信息。也可以根據(jù)輸入的搜索關(guān)鍵字搜索,會出現(xiàn)對應(yīng)的大量商品信息。具體流程圖如下圖3.4所示:圖3.4 搜索流程圖4.用戶購物模塊 用戶購物模塊包括了信息網(wǎng)站的大部分功能,包括瀏覽商品,查看商品詳情,購物車,結(jié)算訂單等功能,如果用戶是未登錄狀態(tài)下結(jié)賬的,那么就會提示用戶登錄,用戶登錄成功后會把瀏覽器本地的購物車內(nèi)容放到相應(yīng)用戶的購物車當(dāng)中去,本地瀏覽器的內(nèi)容就會被刪除。具體的購物流程圖如下圖3.5所示:圖3.5 購物的流程圖詳細(xì)的流程說明:用戶在商城頁面瀏覽商品。用戶把喜歡的商品加入購物車。用戶在購物車頁面點(diǎn)擊結(jié)算。如果用戶未登錄,跳到登錄界面,如果發(fā)起請求者已經(jīng)是登錄狀態(tài),那么久會直接跳到訂單界面。用戶提交訂單,會生成一個支付二維碼。用戶支付成功,等待物流配送。3.2 本章小結(jié) 對系統(tǒng)的整理框架進(jìn)行了設(shè)計,主要運(yùn)用了spring全家桶的技術(shù),前端使用了vue,數(shù)據(jù)庫使用了MySQL和Redis,同時也使用了索引庫來提升用戶的查詢商品的速度需求,同時也對數(shù)據(jù)庫的具體的細(xì)表進(jìn)行了設(shè)計,包括訂單詳情表,商品規(guī)格參數(shù)表,商品信息表,商品詳情表等表的設(shè)計,加深了對表與表的關(guān)聯(lián)關(guān)系和數(shù)據(jù)庫的各種操作的了解。第4章系統(tǒng)實現(xiàn)4.1 環(huán)境實現(xiàn)4.1.1.Eureka注冊中心(微服務(wù)拉?。┘夹g(shù)描述:Eureka就類似于滴滴搭車,負(fù)責(zé)管理、收集服務(wù)提供者的全部信息。服務(wù)的調(diào)用者不用自己尋找服務(wù),而是把自己想要的服務(wù)告訴Eureka中心,然后它就會把符合你自己需求的服務(wù)告訴你讓你來使用。在此同時,服務(wù)的提供方與Eureka之間是通過心跳機(jī)制來進(jìn)行監(jiān)控和管理的,來看某些可以使用的服務(wù)是否正常運(yùn)行并且可以使用,當(dāng)某些服務(wù)的提供方出現(xiàn)了一切技術(shù)問題或非技術(shù)問題,Eureka自然就會把它從眾多的服務(wù)列表中排除掉。這就實現(xiàn)了服務(wù)的自動注冊功能、發(fā)現(xiàn)服務(wù)功能、狀態(tài)的實時監(jiān)控功能。具體實現(xiàn):1.eureka微服務(wù)的pom.xml文件需引入spring-cloud-starter-netflix-eureka-server依賴,并在主方法上添加@EnableEurekaServer注解標(biāo)識該應(yīng)用為eureka服務(wù)器。2.在需要拉取服務(wù)的主方法上添加@EnableDiscoveryClient注解標(biāo)識,就可以實現(xiàn)服務(wù)拉取。4.1.2全局網(wǎng)關(guān)(gateway_zuul)技術(shù)描述:全局網(wǎng)關(guān)是微服務(wù)系統(tǒng)的服務(wù)入口,采用zuul作為網(wǎng)關(guān)實現(xiàn),可對所有請求進(jìn)行過濾,限流,黑名單訪問控制等高級特性,同時,保證服務(wù)的安全性,服務(wù)內(nèi)部間通過內(nèi)網(wǎng)訪問,前端請求到網(wǎng)關(guān)中心時,網(wǎng)關(guān)中心會根據(jù)該請求攜帶的access_token訪問認(rèn)證中心,確保該token有效才放行。具體實現(xiàn):1.gateway_zuul項目中需要添加spring-cloud-starter-netflix-zuul的相關(guān)依賴,并在運(yùn)行類的main方法中添加@EnableZuulProxy注解,標(biāo)識該應(yīng)用為網(wǎng)關(guān)。2.在ns-gateway的application.yml配置文件中配置攔截規(guī)則,并且還可以創(chuàng)建相關(guān)的類,來自定義攔截規(guī)則。4.1.3上傳微服務(wù)技術(shù)描述:我的商城的上傳微服務(wù)部分是通過利用FastDFS的客戶端來實現(xiàn)的。FastDFS是一個體積小、性能強(qiáng)大的開源分布式文件系統(tǒng)。用的是C語言來開發(fā)此軟件,功能十分的豐富:文件的存儲、文件的同步管理、文件的上傳和下載、存取的時候可以實現(xiàn)負(fù)載均衡、在線擴(kuò)大容量等,適合有大容量存儲需求的應(yīng)用和系統(tǒng)。具體實現(xiàn):1.下載FastDFS客戶端到虛擬機(jī)中去,并配置相關(guān)的文件。在上傳微服務(wù)的pom.xml加入fastdfs-client依賴。2.在服務(wù)層代碼中寫相應(yīng)的規(guī)則,并在配置文件中加入相應(yīng)的配置。4.1.4Elasticsearch(搜索引擎)技術(shù)描述:Elasticsearch是一個關(guān)于使用分布式和RESTful風(fēng)格的查詢和數(shù)據(jù)分析引擎,能夠解決大多數(shù)不同的用例。接近于實時的搜索,數(shù)據(jù)的更新速度在Elasticsearch中可以說是幾乎完全同步的??偠灾褪撬阉魉俣葮O其快,目前很多公司都在使用。具體實現(xiàn): 1下載Elasticsearch客戶端到虛擬機(jī),并配置相關(guān)的文件。在搜索微服務(wù)的pom.xml加入spring-boot-starter-data-elasticsearch依賴。 2.在服務(wù)層代碼中寫相應(yīng)的規(guī)則,并在配置文件中加入相應(yīng)的配置。4.1.5 RabbitMQ(消息隊列) 技術(shù)描述:消息隊列總的來說是典型的創(chuàng)造者、消費(fèi)者模型。服務(wù)的提供方不斷向消息隊列中提供生產(chǎn)的消息,服務(wù)的消費(fèi)方不斷的從信息隊列中獲取自身需要消費(fèi)的消息。因為不同服務(wù)的信息的生產(chǎn)和消費(fèi)都是不同步的,而且只需關(guān)心服務(wù)的消息的發(fā)送和消費(fèi),幾乎是不用考慮業(yè)務(wù)邏輯的問題是否有干擾該服務(wù),這樣就實現(xiàn)了解耦。AMQP是一個協(xié)議,它主要內(nèi)容和作用是提供統(tǒng)一的消息服務(wù)的應(yīng)用層標(biāo)準(zhǔn)高級消息隊列,是應(yīng)用層協(xié)議中的一個開源的協(xié)議。在此協(xié)議的基礎(chǔ)上的服務(wù)消費(fèi)方與消息的中間方可相互發(fā)送消息,并且是不受不同的產(chǎn)品、不同的開發(fā)語言等條件的影響和限制的。RabbitMQ就是一個基于AMQP的基礎(chǔ)上的一款消息管理系統(tǒng)。具體實現(xiàn):1.下載RabbitMQ客戶端到虛擬機(jī),并配置相關(guān)的文件。在商品微服務(wù)的pom.xml加入spring-boot-starter-amqp依賴。2.在服務(wù)層代碼中寫相應(yīng)的規(guī)則,并在配置文件中加入相應(yīng)的配置。4.2 前臺商城4.2.1 用戶注冊 下圖4.1是商城的用戶注冊頁面,界面上包含了用戶注冊所需要的具體信息,包括用戶名,密碼,手機(jī)號。會根據(jù)你輸入的內(nèi)容進(jìn)行驗證,如果輸入的值不符合,那么會彈出提示,如果輸入的值全都正確,點(diǎn)擊獲取驗證碼會從阿里云短信發(fā)一條信息驗證碼到你的手機(jī)上,如果你寫的驗證碼正確,那么你就能注冊成功成為商城的使用者,否則就注冊失敗但是還是可以重新注冊的。使用者注冊完成后的使用者的密碼是通過加密之后再存入到數(shù)據(jù)庫當(dāng)中的,通過md5算法加鹽的方式進(jìn)行加密,會使的用戶的賬號密碼安全性更高一點(diǎn),不那么容易被破解。 圖4.1 用戶注冊圖4.2.2 用戶登錄 下圖4.2是商城使用者的登錄界面圖,包含賬號名和賬號的密碼。用戶登錄時通過jwt+RSA實現(xiàn)的。JWT是基于JSON風(fēng)格輕量級的授權(quán)和身份認(rèn)證的規(guī)范,可以實現(xiàn)無狀態(tài)、分布式的應(yīng)用授權(quán);而RSA就是非對稱加密算法。用戶在發(fā)起登錄的請求時,用戶中心會驗證發(fā)起請求的賬號密碼信息,然后在通過后用私鑰對該發(fā)起請求的賬號信息進(jìn)行簽名加密,然后返回jwt給發(fā)起請求的人,請求者可以攜帶JWT訪問到相關(guān)的資源鏈接和服務(wù),網(wǎng)關(guān)部分是可以直接通過公鑰來解密JWT,驗證賬號的登錄狀態(tài),驗證成功之后就可以瀏覽相關(guān)的鏈接,如果使用者發(fā)起的請求需要到達(dá)相關(guān)聯(lián)的微服務(wù),微服務(wù)層就可以直接用公鑰解析JWT,同樣獲取用戶的登錄狀態(tài)等信息,不用在此訪問授權(quán)中心來驗證。 圖4.2 用戶登錄圖4.2.3 商品搜索下圖4.3是商城的前臺界面圖,界面上包含了各種搜索信息。當(dāng)輸入值進(jìn)行搜索的話,下面會出現(xiàn)所搜索的內(nèi)容??梢渣c(diǎn)擊不同的顏色品牌,會對應(yīng)顯示相應(yīng)顏色的數(shù)據(jù),不用刷新頁面。該功能是使用Elasticsearch做的,把商品的信息存入到一個索引庫,然后根據(jù)Elasticsearch的查詢語法就可以快速的查出所需的商品。因為它查的不是MySQL數(shù)據(jù)庫的數(shù)據(jù),而我們后臺管理系統(tǒng)修改或新增的商品是只存到MySQL數(shù)據(jù)庫里去的,所以如果我們后臺管理系統(tǒng)商城或修改了商品,Elasticsearch索引庫的數(shù)據(jù)還是在的,我使用了RabbitMQ消息隊列來解決這一問題,如果后臺商品增刪改了,那我需要通過RabbitMQ向搜索微服務(wù)發(fā)送一條相應(yīng)的通知,讓他對商品索引庫也執(zhí)行相應(yīng)的增刪改操作。其次就是中間部分的那些搜索條件是已實現(xiàn)的,點(diǎn)擊相應(yīng)的條件,就會查出相應(yīng)的商品信息。圖4.3商品搜索顯示圖4.2.4 商品詳情頁 下圖4.4是商品詳情頁的頁面,系統(tǒng)會根據(jù)你在搜索頁面點(diǎn)擊的相關(guān)商品查出與其相對應(yīng)的信息,商品規(guī)格參數(shù)和商品的介紹還有用戶的評價之類的,并能實時觀看不同顏色的商品信息,也可以根據(jù)選擇的商品信息加入購物車。點(diǎn)擊相應(yīng)的商品會生成一個商品靜態(tài)頁,然后之后要是商品信息沒有改變的話,每次點(diǎn)擊就會使用生成出來的靜態(tài)頁,而不用再查索引庫,會使瀏覽速度變得更快。如果商品信息有修改的話,也是通過RabbitMQ來通知靜態(tài)頁功能生成一個新的商品靜態(tài)頁,保證商品信息實時展示。圖4.4 商品詳情圖4.2.5 購物車 下圖4.5是購物車頁面,當(dāng)用戶未登錄狀態(tài)下時加入購物車,商品是存到瀏覽器內(nèi)存中的,結(jié)算的時候驗證登錄狀態(tài),會在登錄成功的時候把購物車商品存到Redis中,并刪除瀏覽器本地的商品信息。用戶如果是登錄狀態(tài)的,那么商品信息直接存到Redis中。在此頁面可以實現(xiàn)對商品的增刪改和對商品數(shù)量的增刪改,并能看到實時的價格數(shù)據(jù),可一次購買任意數(shù)量的物品,看個人的需求。圖4.5 購物車圖4.2.6支付功能 下圖4.6是訂單頁面,購物車頁面點(diǎn)擊結(jié)算,回跳到下面的訂單信息界面。顯示商品數(shù)據(jù),價格信息等。地址信息這個功能暫時還未去完善,用的是假數(shù)據(jù)信息。圖4.6 訂單詳情圖下圖4.7是支付頁面,用戶點(diǎn)擊提交訂單,會生成與商品相應(yīng)的唯一訂單號,并向付款的接口發(fā)起一個付款請求,付款接口會返回一個可以提供付款功能的二維碼鏈接,然后我是通過QRCode來生成相應(yīng)的支付二維碼圖片,用戶可以掃碼支付,因為調(diào)用的不是自己的商家號,所以后臺支付金額寫死了1分錢。如果用戶支付成功了,會跳到支付成功頁面。因為項目是本地的,所以要使用內(nèi)網(wǎng)穿透工具來接受微信返回的成功支付信息,我使用的工具是NATAPP。 圖4.7支付界面圖4.3 后臺管理系統(tǒng)4.3.1品牌管理下圖4.8是品牌管理的界面圖,界面上包含了新增品牌和搜索圖片及分頁等按鈕。當(dāng)用戶輸入搜索關(guān)鍵字的時候,會實現(xiàn)異步搜索,不用手動刷新頁面。選擇分頁條數(shù)的話也是可以實現(xiàn)異步刷新的。點(diǎn)擊id和首字母標(biāo)簽,可以實現(xiàn)異步排序。本頁面可以對品牌進(jìn)行增刪改查等功能。圖4.8品牌管理界面 如圖4.9所示,點(diǎn)擊新增品牌按鈕時會彈出一個新增商品的頁面,當(dāng)選擇商品分類的時候會根據(jù)你選擇的參數(shù)會加載他的子節(jié)點(diǎn),呈現(xiàn)一個樹結(jié)構(gòu)的數(shù)據(jù)給你選擇,并且是可以商品分類是可以實現(xiàn)多選的,品牌照片的上傳是通過fastdfs實現(xiàn)的。頁面也對輸入的參數(shù)進(jìn)行了一些限制。如下圖4.18所示:圖4.9新增品牌頁面4.3.2商品列表下圖4.10是商品列表的界面圖,界面上的上下架按鈕、頁面顯示條數(shù),搜索等是可以實現(xiàn)異步查詢顯示效果的。點(diǎn)擊上架查出來的就是上架的商品信息,反之就是下架的商品信息。同樣也是可以實現(xiàn)點(diǎn)擊排序功能。本頁面可以對商品信息進(jìn)行增刪改查等功能。圖4.10商品列表界面當(dāng)點(diǎn)擊新增商品的時候,會彈出一個頁面,讓你輸入商品信息,并且頁面輸入的值進(jìn)行了限制。有四個頁面要輸入值,分別是商品的一些參數(shù),后一步顯示的值是根據(jù)上一步輸入的值來查數(shù)據(jù)庫實現(xiàn)的。如下圖4.11 圖4.11 新增商品界面圖4.3.3規(guī)格參數(shù)下圖4.12是規(guī)格參數(shù)的界面圖,界面上包含了樹結(jié)構(gòu)的參數(shù)。可以對相應(yīng)的分類添加參數(shù),修改刪除參數(shù)等。圖4.12規(guī)格參數(shù)界面4.4 本章小結(jié) 本章對商城的整體功能進(jìn)行了詳細(xì)實現(xiàn),購物的一整套流程都能走下來,實現(xiàn)了基本的電商購物功能。第5章系統(tǒng)測試5.1系統(tǒng)測試5.1.1測試的意義測試是軟件開發(fā)的一個非常重要的環(huán)節(jié),它是對開發(fā)已經(jīng)完成的功能進(jìn)行測試,通過可以發(fā)現(xiàn)軟件開發(fā)存在的不足之處,如用戶體驗效果上,系統(tǒng)安全性能上,系統(tǒng)功能問題上的缺陷得以暴露出來,使得在后續(xù)開發(fā)過程中解決這問題,使系統(tǒng)更加健全。測試的目的測試的目的包含對用戶需求的功能是否已經(jīng)實現(xiàn),用戶輸入數(shù)據(jù)輸出結(jié)果是否與期望一致,用戶體驗效果是否達(dá)標(biāo),系統(tǒng)安全性能是否有保障等。。5.1.3軟件測試方法軟件測試有許多不同的方法,如果根據(jù)是否關(guān)心軟件的內(nèi)部和軟件的具體實現(xiàn)的角度上可以劃分為:白盒測試、黑盒測試和灰盒測試;如果根據(jù)是否執(zhí)行該程序的角度上可以劃分為:靜態(tài)測試和動態(tài)測試;如果從軟件開發(fā)的過程按階段可以劃分為:單元測試、集成測試和系統(tǒng)測試。本系統(tǒng)是采用的單元測試、集成測試:1.單元測試單元測試是軟件開發(fā)的基本測試,也是軟件有效的測試方式之一,它是從系統(tǒng)的每個獨(dú)立小模塊進(jìn)行測試,測試代碼業(yè)務(wù)邏輯是否正確,輸入數(shù)據(jù)和輸出的結(jié)果值是否與預(yù)期結(jié)果一樣,能夠有效驗證系統(tǒng)功的能實現(xiàn)部分是否還存在著一些問題。2.集成測試集成測試是每個獨(dú)立的功能模塊串聯(lián)起來進(jìn)行整體功能的測試,有些獨(dú)立模塊,單獨(dú)運(yùn)行測試時沒有問題,但是將各個模塊功能串聯(lián)起來測試時就出現(xiàn)問題了,各模塊之間存在不同,因此在軟件交付之前測試一下各個功能的集成還是有必要的。5.2測試用例及測試結(jié)果 由于系統(tǒng)的測試用例比較多,本小節(jié)只給出了系統(tǒng)的部分測試用例及相應(yīng)的測試結(jié)果來說明系統(tǒng)測試的情況,系統(tǒng)測試的部分用例如下表5-1所示:表5.1系統(tǒng)單元測試的部分用例編號用例用例名稱測試的目的測試的結(jié)果1T00011TestService00011測試能否正常拿到商品分類信息能正確拿到商品分類信息2T00055TestService00055測試是否能拿到品牌信息能正常拿到品牌信息3T0012TestService00012測試是否能拿到商品列表信息能正確拿到所有的商品信息4T00151TesService00151測試是否能拿到商品的規(guī)格參數(shù)信息能正??吹揭?guī)格參數(shù)信息5T000152TestService000152測試是否能新增品牌能新增品牌成功6T000155TestService00155測試能否能修改品牌能正確修改品牌信息7T00013TestService00013測試能否搜索商品能正確搜索商品8T00014TestService00014測試能否新增商品能正確新增商品9T00015TestService00015測試能否能登錄能正確登錄到系統(tǒng)10T00016TestService00016測試能否正常支付能正確完成支付11T00017TestService00017測試能否正常注冊能正確完成注冊12T00018TestService00018測試分類信息顯示能正常顯示分類信息13T00019TestService00019測試rabbitmq功能功能正常運(yùn)行14T00020TestService00020測試能否正常顯示商品詳情頁能正確顯示商品詳情頁15T00021TestService00021測試能否正常加入購物車能正確的把商品加入到購物車當(dāng)中去16T00022TestService00022測試能否生成訂單信息能正確顯示訂單信息17T00023TestService00023測試能否正常生成支付二維碼能正確顯示支付二維碼18T00024TestService00024測試對未登錄狀態(tài)下的用戶支付結(jié)果未登錄狀態(tài)的用戶支付時會跳到登錄界面19T00025TestService00025測試參數(shù)搜索商品是夠正常能按照所選的參數(shù)來顯示商品信息由于本系統(tǒng)的需求分析比較詳細(xì),同時對需求分析分析地很透切,因此為系統(tǒng)的設(shè)計提供了重要的依據(jù)和保障,使設(shè)計階段的工作進(jìn)行地非常順利,系統(tǒng)的開發(fā)是嚴(yán)格按照系統(tǒng)的設(shè)計來進(jìn)行的,因此,在進(jìn)行測試工作時,系統(tǒng)的測試工作也很順利,系統(tǒng)整體運(yùn)行狀態(tài)良好。5.3本章小結(jié) 通過測試用例測試了系統(tǒng)的部分功能,從中也測出了一些bug,不過也對其進(jìn)行了修復(fù),有些bug可能暫時沒測出來,不過應(yīng)該不影響基本的購物功能流程了。通過使用了測試功能,更明白了測試的重要性,因為寫代碼的時候可能會粗心導(dǎo)致出現(xiàn)部分bug沒有及時發(fā)現(xiàn),測試時能把問題找出來,并加強(qiáng)了自己的意識,下次寫代碼的時候就會注意這類共性的問題。

第6章結(jié)束語6.1全文總結(jié)本文給出了新星購物電商系統(tǒng)微服務(wù)化的開發(fā)過程,該系統(tǒng)是采用Java語言為開發(fā)語言的,數(shù)據(jù)庫則采用的是MySQL數(shù)據(jù)庫。論文首先闡述了系統(tǒng)開發(fā)中應(yīng)用的關(guān)鍵技術(shù)和開發(fā)環(huán)境,如Idea集成開發(fā)環(huán)境、SpringCloud微服務(wù)開源框架、Spring框架運(yùn)行機(jī)制進(jìn)行開發(fā)此系統(tǒng)。通過對電商系統(tǒng)的需求分析,進(jìn)行了業(yè)務(wù)邏輯的總體設(shè)計和具體的功能模塊設(shè)計。根據(jù)電商購物系統(tǒng)的要求,新星購物電商系統(tǒng)的功能的設(shè)計主要包括訂單管理,網(wǎng)關(guān)管理,用戶管理,商品搜索管理,購物車管理,支付管理等幾個微服務(wù)模塊。在系統(tǒng)的實現(xiàn)部分,文中重點(diǎn)給出了訂單服務(wù),商品服務(wù),搜索服務(wù),支付服務(wù),購物車服務(wù)等功能的描述及實現(xiàn)流程。綜上所述,本文通過對Idea集成開發(fā)環(huán)境、數(shù)據(jù)庫MySQL、eureka,zuul,Redis,RabbitMQ,ElasticSearch索引庫以及Java語言等相關(guān)知識的應(yīng)用,給出了一個購物電商系統(tǒng)的開發(fā)實例。6.2課題展望隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)上購物已經(jīng)是成為了主流的平臺,新星購物電商系統(tǒng)對系統(tǒng)的反應(yīng)性能不斷的改良和提高,充分發(fā)揮其效益,具有重要意義。本系統(tǒng)雖然提高了反應(yīng)速度和改善了購物體驗,但是還存在以下不足:(1)已構(gòu)建的微服務(wù)接口未實現(xiàn)集群部署、高可用的狀態(tài)。(2)分布式事務(wù)的處理機(jī)制暫未實現(xiàn)。(3)在對數(shù)據(jù)庫的設(shè)計方面,對數(shù)據(jù)庫的訪問性能沒能進(jìn)行很好的優(yōu)化。(4)部分的功能暫時沒有完善的太好,應(yīng)該加以完善。因此,基于系統(tǒng)以上存在的不足,以后將對分布式系統(tǒng)的安全性方面和數(shù)據(jù)技術(shù)要進(jìn)行深入的研究,并會對相應(yīng)的功能進(jìn)行更加詳細(xì)的分析,來重新設(shè)計。參考文獻(xiàn):[1]孫衛(wèi)琴.Tomcat與JavaWeb開發(fā)技術(shù)詳解(第2版)[M].北京:電子工業(yè)出版社,2009:100-200[2]陳雄華.Spring企業(yè)級應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2009.:119-250[3]霍斯特曼科內(nèi)爾.Java核心技術(shù)[M].北京:機(jī)械工業(yè)出版社,2014.:180-300[4]楊莉莉.以用戶體驗為導(dǎo)向的電商購物網(wǎng)站界面設(shè)計研究[D].上海:華東理工大學(xué),2013.:89-100[5]畢建信.基于MVC設(shè)計模式WEB應(yīng)用研究與實現(xiàn)[D].武漢:武漢理工大學(xué),2006.:50-80[6]賀松平.基于MVC模式的B/S架構(gòu)的研究與應(yīng)用[D].武漢:華中科技大學(xué),2009.:80-99[7]李國娟.基于JavaEE架構(gòu)的網(wǎng)上購物系統(tǒng)的設(shè)計與實現(xiàn)[D].河北:河北工業(yè)大學(xué),2011.:111-152.8]Changchun,ZZH.Q.,Simulationof3-CSeismicRecordsIn2-DTIM.中國北京.1991:p.489-493[9]CHINA,GC.O.M.,ThetrustmodelbasedonconsumerrecommendationinB-Ce-commerce.中國湖北武漢.2011:p.214-217[10]RaymondFrost.數(shù)據(jù)庫設(shè)計與開發(fā)(影印版)[M].北京:清華大學(xué)出版社,2007:88-110[11]趙然.微服務(wù)架構(gòu)評述[D].中國科學(xué)院聲學(xué)研究所國家網(wǎng)絡(luò)新媒體工程技術(shù)研究中心,2019.[12]方意.微服務(wù)架構(gòu)下的分布式事務(wù)處理[J].華東師范大學(xué)計算機(jī)與軟件工程學(xué)院,2019.[13]張桂珠,劉麗,陳愛國.Java面向?qū)ο蟪绦蛟O(shè)計(第2版)[M].北京:郵電大學(xué)出版社,2005[14](美)施瓦茨,(美)扎伊采夫,(美)特卡琴科.高性能MySQL(第3版).北京:電子工業(yè)出版社,2013年02月致謝在設(shè)計與實現(xiàn)新星購物電商系統(tǒng)這個項目的兩個多月過程中,首先,我要感謝我的導(dǎo)師李秋香老師,在此次實習(xí)指導(dǎo)與畢業(yè)設(shè)計過程盡心盡責(zé)地輔導(dǎo)我及教導(dǎo)我,經(jīng)常在工作上與生活上給予我們一些指導(dǎo),讓我們在剛踏入社會實習(xí)的過渡時期感到踏實、有明確的目標(biāo),在畢業(yè)設(shè)計階段,認(rèn)真負(fù)責(zé)地督促學(xué)生在每個時間節(jié)點(diǎn)按時完成該階段所需要完成的任務(wù)。接著也非常感謝實習(xí)過程中我的那些前輩們,教會我如何處理工作上遇到的許多問題,以及業(yè)務(wù)開發(fā)所必須掌握的業(yè)務(wù)理解能力與后端設(shè)計、架構(gòu)能力,在產(chǎn)品與客戶所提的需求上,要多質(zhì)疑,多細(xì)心思考,才能打造出一款用戶滿意的產(chǎn)品。還強(qiáng)調(diào)不要僅僅局限于實現(xiàn)某個功能,而是要在實現(xiàn)它的基礎(chǔ)上想如何提升該功能的性能。最后,感謝計算機(jī)系及其他院系的師生們,相遇是一種緣分,慶幸在最美的年紀(jì)遇見了你們這一群好朋友,感謝你們陪伴我度過這大學(xué)的美好時光。

HYPERLINK如何選擇組裝電腦配件

如何選擇組裝的電腦配件.

第一,選擇好CPU平臺,就是INTER還是AMD,看你是要配什么樣的電腦,高端還是低端的,兩個平臺都高低的產(chǎn)品。第二,選擇主板了,主板的品牌比較多,質(zhì)量,價格也不一,當(dāng)你第一步卻定了,那么主板也就相應(yīng)的卻定下來了,以INTER為例,只可以選擇775接口的主板(早期有478接口的,不推薦),主板的選擇主要有兩種,一是集成顯卡,二是不集成顯卡。集成顯卡的話,就可以省下顯卡的錢,但是對游戲玩家不推薦。那么當(dāng)然是選擇不集成顯卡的主板了,而且最好選擇一線品牌,如華碩,技嘉等。主板里,還有個蕊片組的選擇。關(guān)于蕊片組,各個品牌的主板命名有些不一樣,主流是INTER965,945,915,VIA的KT890,還有NFORCE4,NFORCE5。等。比較難說清楚。最好是選擇INTER的蕊片組,雖然價格會稍高一些。推薦945,技術(shù)比較成熟。第三,顯卡的選擇。顯卡主要還是有兩類品牌,GEFORCE和ATI,兩個品牌有高,中,低的顯卡。顯卡選擇要看你個人喜歡了,預(yù)算充足的話,最好是買中,高端的顯卡。

第四,就是內(nèi)存了,內(nèi)存關(guān)系電腦的穩(wěn)定性。當(dāng)然是要好一點(diǎn)的。買一線品牌的?,F(xiàn)在配電腦,主流是DDR667,DDR800DDR1333第五,顯示器的選擇,推薦液晶。如何選擇硬件組裝電腦這是一個老生常談的問題了,這也是一個讓高手們顯示自己硬件功底的問題,同時這還是一個讓很多新手為之焦頭爛額的問題。該怎么配?具體配什么?怎樣配才能盡量減小瓶頸?本文就將從內(nèi)到外,從理論到實踐,為朋友們抽絲剝繭一一道來。

一、CPU

作為一臺電腦最關(guān)鍵的組成部分,CPU確實起著舉足輕重的作用,但體現(xiàn)一臺電腦的綜合速度,并不是僅僅依靠CPU的,常??吹胶芏嘈率謧冊谂潆娔X的時候,把CPU選的很好,但其他的東西諸如內(nèi)存、主板、硬盤等都選的不太理想,好像這臺電腦速度的快慢就體現(xiàn)在CPU速度的快慢上似的。甚至很多著名的品牌機(jī)廠商,都推出過類似“P4+256M內(nèi)存”的這種跛腳配置。其實對于一般的家用電腦而言,一個真正會配的高手,是不會把大量的錢花在CPU上的。家用電腦,畢竟不是做密集型科學(xué)計算用的,它講求的是多種媒體的配合工作,講求的是能一邊下載文件、一邊上網(wǎng)瀏覽網(wǎng)頁、一邊聽音樂、一邊還能打開其他的程序,在這種情況下,提升內(nèi)存的容量比提升CPU的主頻對速度的影響要明顯的多。現(xiàn)今的中國家庭用戶,很多家長對于電腦一竅不通,他們只聽說“奔四”代表著速度快,并不知道整機(jī)速度的快慢除了CPU以外,還有很多其他的因素影響著它。但在買電腦的時候,最后做決定并掏錢的人,往往都是這些啥都不懂的家長們,于是就出現(xiàn)了上面的一幕:品牌機(jī)廠商為了能有更好的銷路、兼容機(jī)裝機(jī)店的銷售人員為了能拿到更多的獎金,開始違背良心來配置出這種高主頻處理器、低容量內(nèi)存的跛腳電腦。說嚴(yán)重點(diǎn),這是屬于對消費(fèi)者的不負(fù)責(zé)任,是一種商業(yè)欺詐行為!同樣5000元的配置,高手配出來的賽揚(yáng),比新手配出來的P4還要快很多,曾經(jīng)有一家全球著名的硬件網(wǎng)站在2003年的時候刊登過一篇關(guān)于配置家用電腦時各硬件占用總預(yù)算百分比的文章,文中很明確的提到了CPU的價錢最好不要超過總預(yù)算的10%-15%,我們雖然不能說他肯定完全正確,但至少人家是通過很多調(diào)查后得出的結(jié)論,有借鑒的理由。反觀現(xiàn)在的很多所謂的“低價奔四電腦”、“3999元買P4品牌機(jī)”之類的廣告,我想說的就是:你花了3999元,只買了一塊P4的處理器,其他的什么都沒有了!

二、內(nèi)存

對于配置一臺電腦來說,內(nèi)存是重頭戲,容量、速度、類型等等每一項指標(biāo)都對最終的整機(jī)綜合速度起著至關(guān)重要的影響,尤其是內(nèi)存的帶寬和容量。對于內(nèi)存帶寬而言,很多人都認(rèn)為400MHz、533MHz前端總線的賽揚(yáng)四或P4,配單通道的DDR內(nèi)存就足夠了,雙通道DDR內(nèi)存是配合800MHz以上前端總線的P4處理器用的,其實這樣就大錯特錯了,哪怕是最老的賽揚(yáng)四,都需要雙通道的DDR內(nèi)存才能達(dá)到它的帶寬!也就是說,你如果選擇賽揚(yáng)四1.8G,必須配合865以上的主板和至少雙通道DDR200的內(nèi)存,才能滿足它的帶寬要求!稍微計算一下就可以得知:賽揚(yáng)四1.8G的前端總線是400MHz,它的內(nèi)存帶寬理論值是400MHz×64bit÷8=3.2G/s,但當(dāng)它裝在845系列的主板上時,由于845主板的限制,即使你插上能符合它帶寬要求的DDR400內(nèi)存,也只能運(yùn)行在DDR266上,這時的內(nèi)存所能提供的帶寬是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通過BIOS里的內(nèi)存調(diào)節(jié)選項往上調(diào)節(jié)一檔(也只能調(diào)節(jié)一檔而已),讓內(nèi)存運(yùn)行在DDR333下,所能提供的帶寬也僅僅是333MHz×64bit÷8=2.66G/s,離3.2G/s還是有一定的距離,而內(nèi)存帶寬的降低,能非常明顯的降低整機(jī)的綜合速度,運(yùn)行任何程序都能明顯的感覺出來!所以如果想滿足賽揚(yáng)1.8G處理器的內(nèi)存帶寬要求,你必須要為它配置865以上的主板和雙通道的內(nèi)存才行!P4亦是如此。很多人也許會問:那845系列的主板是配什么處理器的呢?我想回答你的就是:845系列的主板是屬于“不能用”的主板,因為處理器永遠(yuǎn)比主板發(fā)展的快,當(dāng)初Intel造出845系列的芯片組是為了能給當(dāng)時的賽揚(yáng)和P4提供一個過渡的平臺,不至于讓它們成為“沒有主板配合”的處理器而已,也是為了能在低端市場分一杯羹,而現(xiàn)今865甚至9xx系列的主板橫行的時候,845系列的主板確實是屬于“不能用”的主板了,滿足不了任何一款處理器的內(nèi)存帶寬,造成性能上的嚴(yán)重低下,試問這種主板你會選擇么?即使配臺2000多元的超低價電腦,也不要去選擇845系列的主板,至少需要865以上的和雙通道內(nèi)存才行,因為內(nèi)存帶寬是一個非常影響系統(tǒng)性能的參數(shù),倘若一味的為了省錢而配置845系列的主板,那就得不償失了。

內(nèi)存的容量方面,應(yīng)每個人對電腦的使用方向不同,容量的要求也是不同的,現(xiàn)在配置的家用電腦,筆者建議:如果不打游戲,或者是打打掃雷、紙牌之類的游戲,平時注重于上網(wǎng)瀏覽或者是聊天、看電影之類的應(yīng)用的話,內(nèi)存容量不應(yīng)該低于1G;如果是偶爾打打單機(jī)游戲或者是網(wǎng)絡(luò)游戲,內(nèi)存容量應(yīng)該選擇在2G左右,如果是經(jīng)常打大型的游戲或是進(jìn)行HDTV視頻編輯等應(yīng)用,那么4G的內(nèi)存是必不可少的。

三、主板

一臺電腦的穩(wěn)定性和兼容性,一大部分是看主板的,一款優(yōu)秀的主板不僅需要擁有上等的用料和優(yōu)良的做工,還需要擁有合理的走線設(shè)計,那些沒有技術(shù)實力的三、四線主板廠家生產(chǎn)的主板,多數(shù)是采用公版走線,而且用料非常差,穩(wěn)定性不堪一擊,這種類型的主板,筆者建議寧愿不買電腦也不要配這種主板,否則以后將會是個淘氣的祖宗。對于家庭用戶,主板方面一定不能省錢,預(yù)算夠的話最好能買個一線的主板品牌,如果預(yù)算實在不足,二線的主板是底線了,不要再往下選擇了,畢竟家用電腦是用來使用的,不是用來整天維修的。再談到主板的用料,筆者常常看到很多新手在配置主板的時候,貌似老鳥似的說某某品牌的主板好,某某品牌的不好,試問你知道它好在哪里么?不好在哪里么?這個就要看主板的用料了,雖然用料好的主板并不能代表一定是高檔主板,但最少能代表它的電氣性能出色。舉一個很簡單的例子吧:有A、B兩款主板,A主板的處理器供電濾波電容采用的是日系電容,B主板的處理器供電濾波電容采用的是臺系電容,那么基本上可以肯定的是:如果在電源輸出電壓的波動范圍比較大的情況下,A主板就比較能耐得住,而B主板就很容易產(chǎn)生電容鼓包、漏夜等情況。不要小看這小小的電容,筆者從一個開維修店的朋友那里得知,來維修主板的人,有80%的都是這幾個小電容損壞,究其原因,就是電源選擇的不好,導(dǎo)致了輸出電壓的不穩(wěn)定,久而久之最終導(dǎo)致這幾個小電容爆漿,并且詳細(xì)敘述了主板的品牌:“一線廠家的×碩牌主板就很少出現(xiàn)這種情況,但同樣為一線廠家的×星牌主板,經(jīng)常遇到!原因就是前者的大部分主板使用的是日系電容,而后者的大部分主板為了省錢,選用的是臺系電容!”廠家的廣告不能信,宣傳也不能信,看到一個產(chǎn)品的廣告之后,你所能相信的唯一一點(diǎn)就是:地球上有這么個產(chǎn)品的存在!然后其他的就統(tǒng)統(tǒng)都不能信了!網(wǎng)上有好多所謂的“評測”文章,都是槍手寫的,基本上沒有任何參考余地,只能作為一篇小說來讀,一款主板的真正性能,只有你自己使用了之后才能知道。廠家為了銷量、商家為了利潤,他們能把最最垃圾的主板宣傳為最頂級的產(chǎn)品,筆者曾經(jīng)就看到過一款四線品牌的主板廠商,在對其主流主板的廣告上說“最優(yōu)秀的設(shè)計、最精湛的工藝、最穩(wěn)定的性能”……結(jié)果一看報價:550元/塊……其他的話我也不想多說了,只想問問這家廠商:你這么垃圾的主板都用了三個“最”字,那么華碩的同芯片組主板,售價是你三倍的,應(yīng)該用什么詞語來描述了??中國有一句古話:一分錢一分貨,說的非常正確!不要認(rèn)為價格高的主板就是暴利產(chǎn)品,從市場經(jīng)濟(jì)學(xué)上說,暴利產(chǎn)品是不會被市場所接受的,之所以他能存活到今天,而且售價依然是這么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售價高,在此,筆者奉勸大家一句:買主板千萬不要憑僥幸心理,認(rèn)為自己能花很少的錢買到很好的東西,只有錯買的沒有錯賣的,商家永遠(yuǎn)都比你精明!主板上面還是老老實實的多花點(diǎn)錢來買個一線產(chǎn)品吧,否則以后有你吃苦的時候!

四、硬盤

現(xiàn)在的電腦,硬盤的速度當(dāng)之無愧的成為了“第一大瓶頸”,無論你是再高的高手,配電腦的時候也無法消除這個瓶頸的存在,我們只有盡量的減小…再減小……。對于家用電腦的硬盤來說,容量和速度是兩個非常重要的參數(shù),容量上而言,筆者建議:如果你的電腦只是上網(wǎng)瀏覽瀏覽、偶爾打打小游戲的,那么160G的硬盤是個不錯的選擇;如果你常常下載軟件或電影,那么250G的硬盤是個不錯的選擇,如果你是個下載狂人,那么400G的硬盤比較適合你;如果你有DV或者是經(jīng)常編輯大型的視頻文件,那么400G×2比較適合你,如果你是個玩HDTV的人,那么恭喜你,400G×4也許你都不夠用。對于硬盤容量上的選擇,你不能考慮現(xiàn)在是否夠用,你應(yīng)該考慮未來的1年里是否夠用,大概的公式是:現(xiàn)在需要的容量×3。也就是說,如果你現(xiàn)在感覺80G的硬盤差不多夠用了,那么你就需要買個250G的硬盤。如果你現(xiàn)在感覺120G的硬盤夠用了,那么就去買個400G的硬盤吧。硬盤另外的一個參數(shù)就是速度,受到內(nèi)部傳輸率等諸多因素的限制,一塊硬盤的實際傳輸速度是不可能達(dá)到它的接口速度的,現(xiàn)在的并口硬盤基本上都是ATA133了,串口硬盤也都是150了,但民用級硬盤的實際傳輸速度最快的也還沒突破66M/s,所以跟內(nèi)存相比,硬盤的速度是電腦中最大的瓶頸,那么怎么來減小這個瓶頸呢?于是人們就發(fā)明了RAID,就是磁盤陣列(當(dāng)然RAID不是僅僅為了這個而發(fā)明的),用兩塊一模一樣的硬盤來組成RAID0,速度理論上能提高1倍,雖然實際上是不可能達(dá)到1倍的,但至少能非常非常明顯的感覺到了硬盤速度的提升,筆者建議:如果你買的主板是帶有RAID功能的,并且你需要保存的數(shù)據(jù)不是很重要的話,那么強(qiáng)烈建議你在預(yù)算允許的情況下購買兩塊硬盤來組建RAID0,這將使你能親身體會到飛機(jī)與火車的速度差別!但最好是串口的,如果是并口的話,因為并口走的是PCI總線,由于PCI總線上的設(shè)備比較多,所以速度不可能達(dá)到比較高的地步,但如果是串口的話,那么硬盤的速度提升將更加明顯!

五、顯示器

顯示器方面,筆者想澄清一個觀念:曾經(jīng)聽過非常多的人說液晶顯示器保護(hù)眼睛,因為沒有輻射和閃爍……包括很多業(yè)內(nèi)人士都這么認(rèn)為的,其實錯了,液晶顯示器比普通的CRT還要傷眼睛!因為傷眼睛不僅僅是輻射和閃爍,還有對比度、亮度等參數(shù),雖然液晶顯示器的輻射和閃爍比CRT要小的多,但它那要命的對比度、那要命的色澤度、還有那大于每平方米300cd的亮度,這些都會對眼睛造成很大的傷害,并且你即使將液晶顯示器的亮度和對比度調(diào)節(jié)到最低,也還是非常的刺眼。德國的一家權(quán)威機(jī)構(gòu)做過一項調(diào)查:液晶顯示器用久了會使人的眼睛感覺到疲倦,甚至頭痛等癥狀,而使用相同時間的CRT顯示器,卻基本沒有這些情況出現(xiàn)。現(xiàn)在的通過TCO03認(rèn)證的CRT顯示器,其實外露的輻射已經(jīng)相當(dāng)小了,基本上對人已經(jīng)沒有多大的傷害了,閃爍感也可以通過調(diào)節(jié)刷新率來降低,筆者實在是搞不懂為什么很多人非要去選擇液晶顯示器,還非要說液晶顯示器不傷眼睛??一個最差的17寸液晶顯示器的價格,能買一臺不錯的、通過TCO03標(biāo)準(zhǔn)的19寸CRT了,顯示面積也差不多大,而且CRT又比液晶更保護(hù)眼睛,液晶顯示器唯一的一個優(yōu)點(diǎn)就是占用空間小而已,其他的統(tǒng)統(tǒng)是缺點(diǎn),為什么不選擇CRT呢??說到TCO03標(biāo)準(zhǔn),現(xiàn)在很多的號稱是通過TCO03認(rèn)證的顯示器,其實都是貼牌的,都沒有真正的通過,關(guān)于怎樣鑒別一臺TCO03的顯示器,網(wǎng)上已經(jīng)有很多文章可以搜索到,筆者在此不想過多敘述,只是提醒大家一點(diǎn):一臺真正的通過TCO03認(rèn)證的顯示器,外表的顏色除了白色以外,是不會有其他顏色的了,因為TCO03認(rèn)證中有重要的一條就是外殼可回收性,而除了白色以外,其他的任何顏色都加了有機(jī)染料在里面,是不能作為回收利用的,這點(diǎn)請大家購買顯示器的時候一定要注意了!

六、電源

作為一臺電腦的動力之源,電源質(zhì)量的好壞直接關(guān)系到這臺

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論