乐优商城介绍
1.樂優(yōu)商城介紹
1.1.項(xiàng)目介紹
- 樂優(yōu)商城是一個(gè)全品類的電商購物網(wǎng)站(B2C)。
- 用戶可以在線購買商品、加入購物車、下單、秒殺商品
- 可以品論已購買商品
- 管理員可以在后臺管理商品的上下架、促銷活動(dòng)
- 管理員可以監(jiān)控商品銷售狀況
- 客服可以在后臺處理退款操作
- 希望未來3到5年可以支持千萬用戶的使用
1.2.系統(tǒng)架構(gòu)
1.2.1.架構(gòu)圖
樂優(yōu)商城架構(gòu)縮略圖,大圖請參考課前資料:
DevOps
nginx的負(fù)載均衡
CDN
1.2.2.系統(tǒng)架構(gòu)解讀
整個(gè)樂優(yōu)商城可以分為兩部分:后臺管理系統(tǒng)、前臺門戶系統(tǒng)。
-
后臺管理:
- 后臺系統(tǒng)主要包含以下功能:
- 商品管理,包括商品分類、品牌、商品規(guī)格等信息的管理
- 銷售管理,包括訂單統(tǒng)計(jì)、訂單退款處理、促銷活動(dòng)生成等
- 用戶管理,包括用戶控制、凍結(jié)、解鎖等
- 權(quán)限管理,整個(gè)網(wǎng)站的權(quán)限控制,采用JWT鑒權(quán)方案,對用戶及API進(jìn)行權(quán)限控制
- 統(tǒng)計(jì),各種數(shù)據(jù)的統(tǒng)計(jì)分析展示
- 后臺系統(tǒng)會采用前后端分離開發(fā),而且整個(gè)后臺管理系統(tǒng)會使用Vue.js框架搭建出單頁應(yīng)用(SPA)。
- 預(yù)覽圖:
- 后臺系統(tǒng)主要包含以下功能:
-
前臺門戶
- 前臺門戶面向的是客戶,包含與客戶交互的一切功能。例如:
- 搜索商品
- 加入購物車
- 下單
- 評價(jià)商品等等
- 前臺系統(tǒng)我們會使用Nuxt結(jié)合Vue完成頁面開發(fā)。出于SEO優(yōu)化的考慮,我們將不采用單頁應(yīng)用。
- 前臺門戶面向的是客戶,包含與客戶交互的一切功能。例如:
無論是前臺還是后臺系統(tǒng),都共享相同的微服務(wù)集群,包括:
- 商品微服務(wù):商品及商品分類、品牌、庫存等的服務(wù)
- 搜索微服務(wù):實(shí)現(xiàn)搜索功能
- 訂單微服務(wù):實(shí)現(xiàn)訂單相關(guān)
- 購物車微服務(wù):實(shí)現(xiàn)購物車相關(guān)功能
- 用戶中心:用戶的登錄注冊等功能
- 認(rèn)證中心:用戶權(quán)限及服務(wù)權(quán)限認(rèn)證
- Eureka注冊中心
- Zuul網(wǎng)關(guān)服務(wù)
- Spring Cloud Config配置中心
- …
1.3.技術(shù)選型
1.3.1.相關(guān)技術(shù)
前端技術(shù):
- 基礎(chǔ)的HTML、CSS、JavaScript(基于ES6標(biāo)準(zhǔn))
- Vue.js 2.0以及基于Vue的UI框架:Vuetify
- 前端構(gòu)建工具:WebPack
- 前端安裝包工具:NPM
- Vue腳手架:Vue-cli
- Vue路由:vue-router
- ajax框架:axios
- 基于Vue的富文本框架:quill-editor
后端技術(shù):
- 基礎(chǔ)的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.技術(shù)解讀
上面的技術(shù)組合可以在項(xiàng)目中解決以下電商中的典型問題:
-
利用Node.js及Vue.js技術(shù)棧,實(shí)現(xiàn)前后端分離開發(fā)
-
利用SpringCloud技術(shù)棧,實(shí)現(xiàn)真正的微服務(wù)實(shí)戰(zhàn)開發(fā),并且是基于SpringBoot2.0和SpringCloud最新版本Finchley.RC1實(shí)現(xiàn),業(yè)內(nèi)領(lǐng)先。
-
貼近真實(shí)的電商數(shù)據(jù)庫設(shè)計(jì),解決全品類電商的SPU和SKU管理問題
-
基于FastDFS解決大數(shù)據(jù)量的分布式文件存儲問題
-
基于Elasticsearch高級聚合功能,實(shí)現(xiàn)商品的智能過濾搜索
-
基于Elasticsearch高級聚合功能,實(shí)現(xiàn)銷售業(yè)務(wù)的復(fù)雜統(tǒng)計(jì)及報(bào)表輸出
-
基于LocalStorage實(shí)現(xiàn)離線客戶端購物車,減輕服務(wù)端壓力。
-
基于JWT技術(shù)及RSA非對稱加密實(shí)現(xiàn)真正無狀態(tài)的單點(diǎn)登錄。
-
結(jié)合JWT和RSA非對稱加密,自定義Feign過濾器實(shí)現(xiàn)自動(dòng)化服務(wù)間鑒權(quán),解決服務(wù)對外暴露的安全問題
-
基于阿里大于實(shí)現(xiàn)SMS功能,解決電商短信通知問題
-
基于RabbitMQ實(shí)現(xiàn)可靠消息服務(wù),解決服務(wù)間通信問題
-
基于RabbitMQ實(shí)現(xiàn)可靠消息服務(wù),解決分布式事務(wù)問題
-
使用微信SDK實(shí)現(xiàn)微信掃碼支付,符合主流付款方式
-
基于Redis搭建高可用集群,實(shí)現(xiàn)可靠緩存服務(wù)即熱點(diǎn)數(shù)據(jù)保存。
redis持久化,集群,哨兵,主從,緩存擊穿,熱點(diǎn)key。
-
基于Redis和Mq來應(yīng)對高可用高并發(fā)的秒殺場景
-
基于MyCat實(shí)現(xiàn)數(shù)據(jù)庫的讀寫分離和分庫分表
發(fā)視頻
-
基于Thymeleaf實(shí)現(xiàn)頁面模板和靜態(tài)化,提高頁面響應(yīng)速度和并發(fā)能力
-
基于Nginx實(shí)現(xiàn)初步的請求負(fù)載均衡和請求限流
2.有關(guān)面試
2.1、 自我介紹
簡短,自然,突出要點(diǎn)。
- 個(gè)人信息
- 簡短,快速過。沒人在意你叫什么,你老家是哪里的。
- 項(xiàng)目經(jīng)驗(yàn)
- 工作時(shí)長
- 突出重點(diǎn)的項(xiàng)目,電商項(xiàng)目。簡短描述即可,主要說下項(xiàng)目中的技術(shù)架構(gòu),亮點(diǎn)
1.2.你們項(xiàng)目的架構(gòu)是怎樣的?
我們整個(gè)項(xiàng)目采用的是前后端分離開發(fā)模式。
-
前端分為兩部分:
- 后臺管理:主要面向的是數(shù)據(jù)管理人員,采用基于Vue的單頁應(yīng)用開發(fā)方式
- 門戶系統(tǒng):面向的是客戶,門戶采用的是Vue結(jié)合Nuxt實(shí)現(xiàn)服務(wù)端渲染方式
-
后端
后端采用基于SpringCloud的微服務(wù)架構(gòu),統(tǒng)一對外提供Rest風(fēng)格接口,無論是后臺管理還是門戶系統(tǒng)都共享這些微服務(wù)接口,而微服務(wù)中通過JWT方式來識別用戶身份,開放不同接口。
到這里先不說了。如果繼續(xù)追問微服務(wù)拆分粒度或者SpringCloud細(xì)節(jié),再接著回答我們的服務(wù)拆分。
1.3、 公司的性質(zhì)是什么?
外包(注意:最好說是外包公司,否則下面很多問題不好回答)
1.4、 你們開發(fā)的項(xiàng)目上線了嗎?
上線了
1.5、 你們的項(xiàng)目能訪問嗎?域名是多少?
由于是外包項(xiàng)目、項(xiàng)目賣給誰都不知道、域名也不知道
1.6、 你們的項(xiàng)目賣了多少錢?
本人只是開發(fā)人員、并沒有看到公司的合同、不知道賣了多少錢
1.7、 你們生產(chǎn)環(huán)境的服務(wù)器有多少臺?
計(jì)劃是20多臺。具體不清楚,因?yàn)槭峭獍?/p>
devops
32核 128G內(nèi)存
整個(gè)微服務(wù)部署在docker環(huán)境下。
給客戶計(jì)劃是這樣的:初期,除了nginx和Eureka及Zuul以外,其它服務(wù)基本都是單節(jié)點(diǎn)運(yùn)行,大概有20左右臺服務(wù)器,如果后續(xù)壓力過大, 可以繼續(xù)增加某些服務(wù)的節(jié)點(diǎn)備份。
計(jì)劃的服務(wù)節(jié)點(diǎn)數(shù)量:
-
nginx:1主,1備
-
Eureka集群:2臺
-
Zuul集群:2臺
-
配置中心(ConfigServer):1臺
-
RabbitMQ:2臺
-
Redis:3臺
-
FastDFS:2臺tracker,2臺storage
-
mysql數(shù)據(jù)庫:1主,1備,2從
-
elasticsearch:3臺
-
商品服務(wù):1臺
-
文件上傳服務(wù):1臺
-
SMS服務(wù):2臺
-
搜索服務(wù):2臺
-
靜態(tài)頁服務(wù):1臺
-
用戶中心:1
-
授權(quán)中心:2
-
購物車:1
-
訂單:2
共計(jì)36個(gè)服務(wù)節(jié)點(diǎn)。
1.8、 你在項(xiàng)目中主要負(fù)責(zé)什么
我所在的小組主要負(fù)責(zé)后臺系統(tǒng)的開發(fā), 我主要做的是商品管理模塊,不過也參與過一些 搜索系統(tǒng)、購物車系統(tǒng)的部分功能。
1.9、 你們團(tuán)隊(duì)有多少人?
四十多人。
后端:不到30人吧,測試:5人,前端:5人,運(yùn)維:3人,產(chǎn)品經(jīng)理3人,項(xiàng)目經(jīng)理:1人
后端團(tuán)隊(duì)又分為5組,每組負(fù)責(zé)一部分服務(wù)。
總結(jié)
- 上一篇: 乐优商城(一)项目介绍
- 下一篇: 算法 --- 冒泡排序、选择排序、插入