去年12月的時候,mall專案正式釋出,作為Github上面最火的SpringBoot實戰電商專案,累計獲得了25000+Star。今年還是12月,mall專案微服務版本
mall-swarm
正式釋出,文件齊全,附帶全套SpringCloud教程。
專案介紹
mall-swarm
是一套微服務商城系統,採用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch等核心技術,同時提供了基於Vue的管理後臺方便快速搭建系統。mall-swarm
在電商業務的基礎整合了註冊中心、配置中心、監控中心、閘道器等系統功能。
系統架構圖
組織結構
mall
├── mall-common -- 工具類及通用程式碼模組
├── mall-mbg -- MyBatisGenerator生成的資料庫操作程式碼模組
├── mall-security -- 封裝SpringSecurity+JWT的安全認證的模組
├── mall-registry -- 基於Eureka的微服務註冊中心
├── mall-config -- 基於Spring Cloud Config的微服務配置中心
├── mall-gateway -- 基於Spring Cloud Gateway的微服務API閘道器服務
├── mall-monitor -- 基於Spring Boot Admin的微服務監控中心
├── mall-admin -- 後臺管理系統服務
├── mall-search -- 基於Elasticsearch的商品搜尋系統服務
├── mall-portal -- 移動端商城系統服務
└── mall-demo -- 微服務遠端呼叫測試服務
複製程式碼
專案文件
- 專案文件
mall
系列教程:www.macrozheng.com - 配套
Spring Cloud
系列教程:github.com/macrozheng/…
專案演示
- 後臺管理系統: www.macrozheng.com/admin/index…
- 移動端商城系統:www.macrozheng.com/app/index.h…
技術選型
後端技術
技術 | 說明 |
---|---|
Spring Cloud | 微服務框架 |
Spring Boot | 容器+MVC框架 |
Spring Security | 認證和授權框架 |
MyBatis | ORM框架 |
MyBatisGenerator | 資料層程式碼生成 |
PageHelper | MyBatis物理分頁外掛 |
Swagger-UI | 文件生產工具 |
Elasticsearch | 搜尋引擎 |
RabbitMq | 訊息佇列 |
Redis | 分散式快取 |
MongoDb | NoSql資料庫 |
Docker | 應用容器引擎 |
Druid | 資料庫連線池 |
OSS | 物件儲存 |
JWT | JWT登入支援 |
LogStash | 日誌收集 |
Lombok | 簡化物件封裝工具 |
Seata | 全域性事務管理框架 |
前端技術
技術 | 說明 |
---|---|
Vue | 前端框架 |
Vue-router | 路由框架 |
Vuex | 全域性狀態管理框架 |
Element | 前端UI框架 |
Axios | 前端HTTP框架 |
v-charts | 基於Echarts的圖表框架 |
環境搭建
開發環境搭建
mall-swarm
中使用到的環境和mall
專案中大致相同,具體可以檢視mall在Windows環境下的部署。
簡易環境搭建流程:
- 安裝IDEA並匯入專案原始碼;
- 安裝MySql,建立一個
mall
資料庫,並匯入/document/sql/mall.sql
檔案; - 安裝Redis、Elasticsearch、MongoDB、RabbitMQ等環境。
專案部署
mall-swarm
專案啟動有先後順序,大家要按照以下順序啟動。
啟動註冊中心mall-registry
- 直接執行com.macro.mall.MallRegistryApplication的main函式即可;
- 執行完成後可以通過註冊中心控制檯檢視:http://localhost:8001
啟動配置中心mall-config
- 直接執行com.macro.mall.MallConfigApplication的main函式即可;
- 訪問以下介面獲取mall-admin在dev環境下的配置資訊:http://localhost:8301/master/admin-dev.yml
啟動監控中心mall-monitor
- 直接執行com.macro.mall.MallMonitorApplication的main函式即可;
- 執行完成後可以通過監控中心控制檯檢視:http://localhost:8101
- 輸入賬號密碼
macro:123456
可以登入檢視。
啟動閘道器服務mall-gateway
- 直接執行com.macro.mall.MallGatewayApplication的main函式即可;
- 訪問以下介面獲取動態路由規則:http://localhost:8201/actuator/gateway/routes
啟動後臺管理服務mall-admin
- 直接執行com.macro.mall.MallAdminApplication的main函式即可;
- 通過
mall-gateway
閘道器服務訪問介面文件:http://localhost:8201/mall-admin/swagger-ui.html
- 登入介面地址:http://localhost:8201/mall-admin/admin/login
- 訪問登入介面獲取到token後放入認證的頭資訊即可正常訪問其他需要登入的介面:
啟動前臺服務mall-portal
- 直接執行com.macro.mall.portal.MallPortalApplication的main函式即可;
- 通過
mall-gateway
閘道器服務訪問介面文件:http://localhost:8201/mall-portal/swagger-ui.html
- 登入介面地址:http://localhost:8201/mall-portal/sso/login
- 呼叫需要登入的介面方式同
mall-admin
。
啟動搜尋服務mall-search
- 直接執行com.macro.mall.search.MallSearchApplication的main函式即可;
- 通過
mall-gateway
閘道器服務訪問介面文件:http://localhost:8201/mall-search/swagger-ui.html
啟動測試服務mall-demo
- 直接執行com.macro.mall.MallAdminApplication的main函式即可;
- 通過
mall-gateway
閘道器服務訪問介面文件:http://localhost:8201/mall-demo/swagger-ui.html
- 可以通過呼叫FeignAdminController、FeignPortalController、FeignSearchController來測試使用Feign的遠端呼叫功能。
效果展示
- 註冊中心服務資訊:
- 監控中心服務概覽資訊:
- 監控中心單應用詳情資訊:
擴充套件解決方案
- 如果想使用
Consul
作為註冊及配置中心的話請參考:Spring Cloud Consul:服務治理與配置中心 - 如果想使用
Nacos
作為註冊及配置中心的話請參考:Spring Cloud Alibaba:Nacos 作為註冊中心和配置中心使用 分散式事務
解決方案請參考:使用Seata徹底解決Spring Cloud中的分散式事務問題!ELK
日誌收集系統的搭建請參考:SpringBoot應用整合ELK實現日誌收集。
專案地址
開源不易,覺得本專案有幫助的朋友可以
點個Star
支援下!
公眾號
mall專案全套學習教程連載中,關注公眾號第一時間獲取。