1:項目總結前端
項目介紹: 一、樂優商城是一個全品類的電商購物網站(B2C)。 二、用戶能夠在線購買商品、加入購物車、下單、秒殺商品 三、能夠品論已購買商品 四、管理員能夠在後臺管理商品的上下架、促銷活動 五、管理員能夠監控商品銷售情況 六、客服能夠在後臺處理退款操做 七、但願將來3到5年能夠支持千萬用戶的使用
2:項目要點:vue
要點: 一、 整個系統採用了先後端分離的開發模式 二、前端基於vue相關技術棧進行開發,並經過ajax與後端服務進行交互。 三、前端進行nginx部署,並利用nginx實現對後臺服務的反向代理和負荷均衡(proxy_pass http://192.168.161.1:9001;) 四、部分熱點靜態資源,碰到流量高峯的時候會考慮使用CDN服務(內容分發網絡) 五、使用lvs(Linux虛擬服務器)來實現nginx的主從,保證nginx的高可用 六、後端採用了springCloud技術棧來搭建微服務集羣,並對外提供Rest風格接口。 七、Zuul做爲整個微服務入口,實現請求路由、負載均衡、限流、權限控制等功能。 八、後端微服務集羣會經過Spring-Cloud-Config結合Spring-Cloud-Bus來實現統一配置管理和配置動態刷新。 九、經過Spring-Cloud-Sleuth 和ZipKin實現服務的鏈路追蹤
3.系統架構解讀webpack
整個樂優商城能夠分爲兩部分:後臺管理系統、前臺門戶系統
3.1 前端ios
前端頁面分紅兩部分 一、一部分面向公司內部人員,實現對商城平常業務管理。後臺管理頁面。 二、一部分面向買家,實現商品的展現。搜索購買等功能。前臺 3.2 門戶頁面。 3.1.1後臺管理頁面: 技術實現: 一、後臺管理頁面基於VUE實現單頁應用(SPA)。 二、使用webpack做爲項目構建和打包工具 三、使用npm做爲依賴管理 四、使用Vuetity(基於Vue的UI框架,相似element-ui)構建頁面 五、經過axios發起ajax請求,與後臺交互 功能模塊: 一、商品管理,包括商品分類、品牌、商品規格等信息的管理 二、銷售管理,包括訂單統計、訂單退款處理、促銷活動生成等 三、用戶管理,包括用戶控制、凍結、解鎖等 四、權限管理,整個網站的權限控制,採用JWT鑑權方案,對用戶及API進行權限控制 五、統計,各類數據的統計分析展現 3.1.2前臺門戶頁面: 技術實現: 一、基於Vue技術棧 二、使用Nuxt的服務端渲染方式,再也不採用單頁應用,有利於(SEO搜索引擎優化)。 三、其餘與後臺管理頁面技術相似 前臺門戶面向的是客戶,包含與客戶交互的一切功能。例如: 一、搜索商品 二、加入購物車 三、下單 四、評價商品等等
四、前臺和後臺系統,都共享相同的微服務集羣,其中包括:nginx
4.1 商品微服務:商品及商品分類、品牌、庫存等的服務 一、商品分類管理 二、商品品牌管理 三、商品規格參數管理:由於規格的可變性,採用豎表設計,分爲規格和規格組表 四、商品管理:SPU和SKU的設計,以及SKU的動態屬性。 五、庫存管理:庫存加減採用樂觀鎖方案,另外定時對庫存判斷,庫存不足可通知管理員。 4.2 搜索微服務:實現搜索功能 一、採用Elasticsearch完成商品的全文檢索功能 二、搜索過濾 三、集羣 4.3 訂單微服務:實現訂單相關 一、訂單表設計,狀態記錄 二、建立訂單須要同時減庫存、跨服務業務、須要注意事務處理,流程。 1.1:查詢訂單提交的商品信息 1.2:計算訂單總價(計算商品總價、計算運費、計算促銷金額) 1.3:寫入訂單、訂單詳情、訂單狀態 1.四、減庫存、遠程同步調用商品微服務,實現減庫存 若是採用異步減庫存、可能須要引入分佈式事務。 4.4 購物車微服務:實現購物車相關功能 一、離線購物車:主要使用了localStorage保存到客戶端,幾乎不與服務器交互 二、在線購物車:使用了redis實現。(數據庫 值 和 key) 4.5 用戶中心:用戶的登陸註冊等功能 一、用戶註冊 二、註冊數據校驗 三、查詢用戶信息 4.6 認證中心:用戶權限及服務權限認證 一、權限管理CRUD 二、登陸token生成 三、登陸token認證 四、服務間token生成 五、服務間token認證 六、解決cookie被禁用(跨域問題) 首先提示用戶cookie不能夠被禁用;把cookie放入頭中返回,JS獲取頭信息,存入web存儲(localstorage,SessionStorage),每次請求都須要手動攜帶token,寫入頭中 七、解決cookie被盜用(受權)咱們的cookie沒法被篡改 ;使用HTTPS協議,防止數據泄露 ;加入ip地址識別身份到payload中 八、微服務地址被暴露 首先地址不會被暴露,由於全部的微服務都經過Zuul進行訪問,對外暴露的只有Zuul;萬一暴露了,咱們能夠加入服務間鑑權 4.7 短信服務:完成短信發送 一、對接阿里雲 平臺,經過MQ(MQ消息隊列)實現異步短信發送 4.8 支付服務:完成支付平臺對接 一、對接微信支付 4.9 Eureka註冊中心 4.10 Zuul網關服務 4.11 Spring Cloud Config配置中心