一垛贤、目的
根據(jù)需求焰坪,完成一個(gè)互聯(lián)網(wǎng)電商系統(tǒng)。
電商系統(tǒng):以淘寶聘惦、京東為代表的網(wǎng)購平臺(tái)某饰。
1.2 為什么要學(xué)習(xí)電商系統(tǒng)?
電商系統(tǒng)涉及的技術(shù)非常全面善绎,包括SSM核心框架黔漂、linux、redis禀酱、solr炬守、mq等全部的框架和技術(shù)。
學(xué)好了電商系統(tǒng)剂跟,就能掌握如何利用我們所需的知識(shí)减途,在工作中開發(fā)項(xiàng)目。
1.3 如何學(xué)習(xí)電商系統(tǒng)
做任何的系統(tǒng)曹洽,都有一套相對(duì)固定的流程鳍置。
(1)確定需求
(2)畫出原型,制作靜態(tài)頁面送淆。
(3)根據(jù)靜態(tài)頁面税产,畫出E-R圖,創(chuàng)建數(shù)據(jù)庫。
(4)確定系統(tǒng)架構(gòu)
(5)確定技術(shù)選型
(6)項(xiàng)目組分配任務(wù)
(7)確定開發(fā)環(huán)境辟拷,統(tǒng)一版本
(8)開發(fā)功能模塊
(9)測(cè)試
(10)預(yù)發(fā)布
(11)上線
(12)運(yùn)維
我們就按照這個(gè)流程來學(xué)習(xí)撞羽、開發(fā)電商項(xiàng)目。
二梧兼、開發(fā)流程
- 確定需求
互聯(lián)網(wǎng)電商系統(tǒng)的需求放吩,一般從兩個(gè)方面考慮:并發(fā)能力+功能需求智听。
2.并發(fā)能力
所謂的并發(fā)羽杰,就是單位時(shí)間內(nèi),同時(shí)訪問服務(wù)器的總次數(shù)到推。
本系統(tǒng)并發(fā)需求800-1000次/秒考赛。
- 功能需求
(1)用戶訪問門戶系統(tǒng),可以搜索莉测、瀏覽商品颜骤,并將商品添加到購物車。
(2)用戶通過身份認(rèn)證之后捣卤,可以下訂單忍抽、支付。
(3)要完成身份認(rèn)證董朝,必須實(shí)現(xiàn)注冊(cè)登陸功能鸠项。
(4)后臺(tái)系統(tǒng)中,可以實(shí)現(xiàn)對(duì)商品子姜、訂單等的管理祟绊。
(5)CMS系統(tǒng)管理門戶系統(tǒng)中的內(nèi)容(商品、廣告哥捕、鏈接等)牧抽。
- 畫出E-R圖,創(chuàng)建數(shù)據(jù)庫
(1)既然是購物平臺(tái)遥赚,肯定有一張商品表
(2)每一個(gè)商品對(duì)應(yīng)一個(gè)分類扬舒,需要一張商品分類表
(3)每一類商品,都對(duì)應(yīng)一個(gè)規(guī)格參數(shù)的模板凫佛。需要一張參數(shù)模板表
(4)每一個(gè)商品的規(guī)格參數(shù)值都是不一樣的讲坎,所以需要一張規(guī)格參數(shù)值表。
(5)每一個(gè)商品都對(duì)應(yīng)有一個(gè)詳細(xì)的描述信息御蒲,所以需要一張描述信息表衣赶。
目的:將大文本的描述信息抽出來,減小商品表的體積厚满,從而提供商品表的檢索效率府瞄。
(6)CMS需要一張內(nèi)容分類表
(7)每一個(gè)內(nèi)容分類,都有一組具體的內(nèi)容,所以需要一張內(nèi)容表遵馆。
(8)用戶要登陸鲸郊,需要一張用戶表
(9)用戶下單,需要一張訂單表
(10)一個(gè)訂單中货邓,可以有多個(gè)商品秆撮,所以需要一張訂單項(xiàng)表。
(11)每一個(gè)訂單都有一個(gè)收件地址换况,需要需要一張收件人表职辨。
5.分布式架構(gòu)
分布式指的是將一個(gè)系統(tǒng)拆分成多個(gè)不同的子系統(tǒng),部署到不同的服務(wù)器上戈二,系統(tǒng)之間通過接口的形式舒裤,相互調(diào)用。
好處:
(1)各系統(tǒng)之間相互獨(dú)立觉吭,以接口相互調(diào)用腾供,代碼入侵少,耦合度低鲜滩。
(2)拓展性能好伴鳖,新增一個(gè)功能模塊時(shí),只需要將該子系統(tǒng)接入即可徙硅。
(3)可以進(jìn)行靈活的分布式部署和負(fù)載均衡實(shí)現(xiàn)榜聂。
(4)項(xiàng)目組分小組開發(fā)子系統(tǒng),溝通成本低闷游。
劣勢(shì):
調(diào)用接口的時(shí)候峻汉,必須開發(fā)接口,意味著增加工作量脐往。
6.核心系統(tǒng)描述:
后臺(tái)管理系統(tǒng):
管理商品休吠、訂單、類目业簿、商品規(guī)格屬性瘤礁、用戶管理以及內(nèi)容發(fā)布等功能。
前臺(tái)系統(tǒng):
用戶可以在前臺(tái)系統(tǒng)中進(jìn)行注冊(cè)梅尤、登錄柜思、瀏覽商品、首頁巷燥、下單等操作赡盘。
會(huì)員系統(tǒng):
用戶可以在該系統(tǒng)中查詢已下的訂單、收藏商品缰揪、我的優(yōu)惠券陨享、團(tuán)購等信息。
訂單系統(tǒng):
提供下單、查詢訂單抛姑、修改訂單狀態(tài)赞厕、定時(shí)處理訂單。
搜索系統(tǒng):
提供商品的搜索功能定硝。
單點(diǎn)登錄系統(tǒng):
為多個(gè)系統(tǒng)之間提供用戶登錄憑證以及查詢登錄用戶的信息皿桑。
7.技術(shù)選型(主要技術(shù))
(1)Spring、SpringMVC蔬啡、Mybatis-Plus
(2)JSP诲侮、JSTL、jQuery星爪、jQuery plugin浆西、EasyUI粉私、KindEditor(富文本編輯器)顽腾、CSS+DIV
(3)Redis(緩存服務(wù)器)
(4) Solr(搜索)
(5)Activemq(消息推送)
(6)Httpclient、jsonp(調(diào)用系統(tǒng)服務(wù)诺核,系統(tǒng)之間相互調(diào)用)
(7)Mysql
(8)tenginx(web服務(wù)器)
(9) Linux(項(xiàng)目最終部署的地方)