咕泡商城是咕泡學院Java架構課程中,幫助學員對於技術更好落地的一個實戰項目,項目基於springboot2.1.6.RELEASE+Dubbo2.7.3 來構建微服務。
業務模組劃分,盡量貼合網路公司的架構體系。所以,除了業務本身的複雜度不是很高之外,整體的架構基本和實際架構相差無幾。
但實際上,真實的生產級的專案由於用戶量以及業務的複雜度,會變得非常複雜。 所以我們會讓更多的人參與進來,從需求、設計、解決方案等方面出發來對專案進行迭代,從而培養出一定的
實際解決方案的經驗和能力。
專案採用前後端分離開發,前端需獨立部署。目前核心的技術堆疊採用的是SpringBoot2.1.5.RELEASE+Dubbo2.7.2,
後端的主要架構是基於springboot+dubbo+mybatis.
db_script 本專案的資料庫腳本 | 使用mysql | 暫時未做分錶處理,不過有考慮到分錶的情況 |
---|---|---|
gpmall-cashier 收銀台,負責支付相關的互動邏輯 | web項目 | 8083端口 |
gpmall-commons 公共的組件 | jar | 公共組件,很多地方都有引用,改動的時候要注意 |
gpmall-front 咕泡商城的前端項目 | 前端專案 | 使用vue、node、es等前端技術開發 |
gpmall-parent 父控文件,用來統一管理所有jar包 | 父控文件 | 用來統一管理所有專案的jar包的版本 |
gpmall-shopping 商品/購物車/首頁渲染等交互 | web項目 | 8081端口 |
gpmall-user 提供使用者相關的交互,如登入、註冊、個人中心等 | web項目 | 8082端口 |
market-service 促銷活動的Dubbo服務【暫時未聯調完成,可以不啟動】 | dubbo服務 | 20884端口 |
pay-service 提供支付處理能力 | dubbo服務 | 20883端口 |
shopping-service,提供購物車、推薦商品、商品等服務 | dubbo服務 | 20881端口 |
user-service ,提供使用者相關服務 | dubbo服務 | 20880端口 |
order-service ,提供訂單服務 | dubbo服務 | 20882端口 |
comment-service , 商品評論服務 | dubbo服務 | 20885端口 |
PRD | 存放prd需求文檔,有想參與設計的同學,可以提供prd需求 | |
wiki | 幫助文檔,需要每位同學貢獻自己的一份力量 |
建立gpmall資料庫,並把db_scrpit
目錄下的sql腳本導入。
依照下方順序分別啟動相關服務
gpmall-parent , 這個是整個專案的父控文件,需要執行install安裝到本地,如果自己搭建了nexus,可以deploy到nexus上
gpmall-commons , 這個是整個專案的公共依賴,執行install安裝到本地,如果自己搭建了nexus,可以deploy到nexus上
註: 以下微服務,用到了mysql、redis、kafka等,需要事先安裝好相關中間件,並且所有的服務配置的是host位址,建議用hostswitch工具統一維護
user-service , 使用者服務,把user-service-api
模組,install到本地倉庫,因為其他模組有依賴。然後啟動服務。
order-service , 訂單服務, 把order-service-api
模組,install到本地,給其他模組依賴
shopping-service , 商品服務, 把shopping-service-api
模組,install到本地,給其他模組依賴
marking-service , 行銷服務,暫時未開發功能。
pay-service , 支付服務,程式碼已經寫完並調試通過(但是用的是老的介面版本,如果是新的版本,需要改接口),還需要提供appid這些,不過這個項目不啟動,並不影響前面的頁面的功能
comment-service , 評論服務,用於展示商品評論信息
下面的服務為BFF,做服務聚合,分別依賴上面的微服務模組
gpmall-shopping
gpmall-user
gpmall-cashier
前端工程gpmall-front, 這個專案採用vue開發。
npm install
,npm run dev
運行, 如果後端的服務都正常啟動,此時gpmall-front會把請求轉送到服務端取得相關資料進行渲染。非常歡迎您對Gpmall的開發做出貢獻! 你可以選擇以下方式為Gpmall貢獻:
<<<<<<< HEAD
=======
88aab362053f002aeff65bb3c957591fafb1c788
作者的個人博客
https://istio.tech