乐优商城介绍
1.樂優商城介紹
1.1.項目介紹
- 樂優商城是一個全品類的電商購物網站(B2C)。
- 用戶可以在線購買商品、加入購物車、下單、秒殺商品
- 可以品論已購買商品
- 管理員可以在后臺管理商品的上下架、促銷活動
- 管理員可以監控商品銷售狀況
- 客服可以在后臺處理退款操作
- 希望未來3到5年可以支持千萬用戶的使用
1.2.系統架構
1.2.1.架構圖
樂優商城架構縮略圖,大圖請參考課前資料:
DevOps
nginx的負載均衡
CDN
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和Mq來應對高可用高并發的秒殺場景
-
基于MyCat實現數據庫的讀寫分離和分庫分表
發視頻
-
基于Thymeleaf實現頁面模板和靜態化,提高頁面響應速度和并發能力
-
基于Nginx實現初步的請求負載均衡和請求限流
2.有關面試
2.1、 自我介紹
簡短,自然,突出要點。
- 個人信息
- 簡短,快速過。沒人在意你叫什么,你老家是哪里的。
- 項目經驗
- 工作時長
- 突出重點的項目,電商項目。簡短描述即可,主要說下項目中的技術架構,亮點
1.2.你們項目的架構是怎樣的?
我們整個項目采用的是前后端分離開發模式。
-
前端分為兩部分:
- 后臺管理:主要面向的是數據管理人員,采用基于Vue的單頁應用開發方式
- 門戶系統:面向的是客戶,門戶采用的是Vue結合Nuxt實現服務端渲染方式
-
后端
后端采用基于SpringCloud的微服務架構,統一對外提供Rest風格接口,無論是后臺管理還是門戶系統都共享這些微服務接口,而微服務中通過JWT方式來識別用戶身份,開放不同接口。
到這里先不說了。如果繼續追問微服務拆分粒度或者SpringCloud細節,再接著回答我們的服務拆分。
1.3、 公司的性質是什么?
外包(注意:最好說是外包公司,否則下面很多問題不好回答)
1.4、 你們開發的項目上線了嗎?
上線了
1.5、 你們的項目能訪問嗎?域名是多少?
由于是外包項目、項目賣給誰都不知道、域名也不知道
1.6、 你們的項目賣了多少錢?
本人只是開發人員、并沒有看到公司的合同、不知道賣了多少錢
1.7、 你們生產環境的服務器有多少臺?
計劃是20多臺。具體不清楚,因為是外包
devops
32核 128G內存
整個微服務部署在docker環境下。
給客戶計劃是這樣的:初期,除了nginx和Eureka及Zuul以外,其它服務基本都是單節點運行,大概有20左右臺服務器,如果后續壓力過大, 可以繼續增加某些服務的節點備份。
計劃的服務節點數量:
-
nginx:1主,1備
-
Eureka集群:2臺
-
Zuul集群:2臺
-
配置中心(ConfigServer):1臺
-
RabbitMQ:2臺
-
Redis:3臺
-
FastDFS:2臺tracker,2臺storage
-
mysql數據庫:1主,1備,2從
-
elasticsearch:3臺
-
商品服務:1臺
-
文件上傳服務:1臺
-
SMS服務:2臺
-
搜索服務:2臺
-
靜態頁服務:1臺
-
用戶中心:1
-
授權中心:2
-
購物車:1
-
訂單:2
共計36個服務節點。
1.8、 你在項目中主要負責什么
我所在的小組主要負責后臺系統的開發, 我主要做的是商品管理模塊,不過也參與過一些 搜索系統、購物車系統的部分功能。
1.9、 你們團隊有多少人?
四十多人。
后端:不到30人吧,測試:5人,前端:5人,運維:3人,產品經理3人,項目經理:1人
后端團隊又分為5組,每組負責一部分服務。
總結
- 上一篇: 乐优商城(一)项目介绍
- 下一篇: 算法 --- 冒泡排序、选择排序、插入