1.1.項目介紹
- 樂優商城是一個全品類的電商購物網站(B2C)。
- 用戶可以在線購買商品、加入購物車、下單、秒殺商品
- 可以評論已購買商品
- 管理員可以在後臺管理商品的上下架、促銷活動
- 管理員可以監控商品銷售狀況
- 客服可以在後臺處理退款操作
- 希望未來3到5年可以支持千萬用戶的使用
1.2.系統架構
1.2.1.架構圖
1.2.2.系統架構解讀
整個樂優商城可以分爲兩部分:後臺管理系統、前臺門戶系統。
- 後臺管理:
- 後臺系統主要包含以下功能:
- 商品管理,包括商品分類、品牌、商品規格等信息的管理
- 銷售管理,包括訂單統計、訂單退款處理、促銷活動生成等
- 用戶管理,包括用戶控制、凍結、解鎖等
- 權限管理,整個網站的權限控制,採用JWT鑑權方案,對用戶及API進行權限控制
- 統計,各種數據的統計分析展示
- 後臺系統會採用前後端分離開發,而且整個後臺管理系統會使用Vue.js框架搭建出單頁應用(SPA)。
- 預覽圖:
- 後臺系統主要包含以下功能:
- 前臺門戶
- 前臺門戶面向的是客戶,包含與客戶交互的一切功能。例如:
- 搜索商品
- 加入購物車
- 下單
- 評價商品等等
- 前臺系統我們會使用Nuxt結合Vue完成頁面開發。出於SEO優化的考慮,我們將不採用單頁應用。
- 前臺門戶面向的是客戶,包含與客戶交互的一切功能。例如:
無論是前臺還是後臺系統,都共享相同的微服務集羣,包括:
- 商品微服務:商品及商品分類、品牌、庫存等的服務
- 搜索微服務:實現搜索功能
- 訂單微服務:實現訂單相關
- 購物車微服務:實現購物車相關功能
- 用戶中心:用戶的登錄註冊等功能
- 認證中心:用戶權限及服務權限認證
- Eureka註冊中心
- Zuul網關服務
- Spring Cloud Config配置中心
- …
1.3.技術選型
1.3.1.相關技術
前端技術:
- 基礎的HTML、CSS、JavaScript(基於ES6標準)
- Vue.js 2.0以及基於Vue的UI框架:Vuetify
- 前端構建工具:WebPack
- 前端安裝包工具:NPM
- Vue腳手架:Vue-cli
- Vue路由:vue-router
- ajax框架:axios
- 基於Vue的富文本框架:quill-editor
後端技術:
- 基礎的SpringMVC、Spring 5.0和MyBatis3
- Spring Boot 2.0.1版本
- Spring Cloud 最新版 Finchley.RC1
- Redis-4.0
- RabbitMQ-3.4
- Elasticsearch-5.6.8
- nginx-1.10.2
- FastDFS - 5.0.8
- MyCat
- Thymeleaf
- JWT
1.3.2.技術解讀
上面的技術組合可以在項目中解決以下電商中的典型問題:
- 利用Node.js及Vue.js技術棧,實現前後端分離開發
- 利用SpringCloud技術棧,實現真正的微服務實戰開發,並且是基於SpringBoot2.0和SpringCloud最新版本Finchley.RC1實現,業內領先。
- 貼近真實的電商數據庫設計,解決全品類電商的SPU和SKU管理問題
- 基於FastDFS解決大數據量的分佈式文件存儲問題
- 基於Elasticsearch高級聚合功能,實現商品的智能過濾搜索
- 基於Elasticsearch高級聚合功能,實現銷售業務的複雜統計及報表輸出
- 基於LocalStorage實現離線客戶端購物車,減輕服務端壓力。
- 基於JWT技術及RSA非對稱加密實現真正無狀態的單點登錄。
- 結合JWT和RSA非對稱加密,自定義Feign過濾器實現自動化服務間鑑權,解決服務對外暴露的安全問題
- 基於阿里大於實現SMS功能,解決電商短信通知問題
- 基於RabbitMQ實現可靠消息服務,解決服務間通信問題
- 基於RabbitMQ實現可靠消息服務,解決分佈式事務問題
- 使用微信SDK實現微信掃碼支付,符合主流付款方式
- 基於Redis搭建高可用集羣,實現可靠緩存服務即熱點數據保存。
redis持久化,集羣,哨兵,主從,緩存擊穿,熱點key。 - 基於Redis和消息隊列來應對高可用高併發的秒殺場景
- 基於MyCat實現數據庫的讀寫分離和分庫分表
- 基於Thymeleaf實現頁面模板和靜態化,提高頁面響應速度和併發能力
- 基於Nginx實現初步的請求負載均衡,削峯,限流