以前mall項目更新到了SpringBoot 2.3.0版本,微服務版本mall-swarm也已同步更新了。這次更新完善了項目的Spring Cloud技術棧,升級至Spring Cloud Hoxton版本並加入了Spring Cloud Alibaba、Oauth2和Knife4j,致力於打造Spring Cloud 最佳實踐項目!數據庫
mall
├── mall-common -- 工具類及通用代碼模塊
├── mall-mbg -- MyBatisGenerator生成的數據庫操做代碼模塊
├── mall-auth -- 基於Spring Security Oauth2的統一的認證中心
├── mall-gateway -- 基於Spring Cloud Gateway的微服務API網關服務
├── mall-monitor -- 基於Spring Boot Admin的微服務監控中心
├── mall-admin -- 後臺管理系統服務
├── mall-search -- 基於Elasticsearch的商品搜索系統服務
├── mall-portal -- 移動端商城系統服務
├── mall-demo -- 微服務遠程調用測試服務
└── config -- 配置中心存儲的配置
集成Spring Cloud Alibaba,註冊中心改用Nacos;架構
權限功能改用Oauth2,實現統一認證和鑑權;app
集成Knife4j,實現網關聚合API文檔;ide
升級Spring Cloud Hoxton.SR5;微服務
升級Spring Boot 2.3.0.RELEASE;工具
升級Elasticsearch 7.6.2;測試
ELK日誌收集功能完善,採用分場景收集日誌的方式;lua
Window和Linux部署文檔更新。spa
集成了Spring Cloud Alibaba,註冊中心和配置中心都改用了Nacos。以前使用的註冊中心是Eureka,已經進入維護期再也不更新了,以前使用的配置中心是Spring Cloud Config,須要使用消息隊列才能實現配置刷新。Nacos既能夠當註冊中心又能夠當配置中心,採用Netty保持TCP長鏈接實現配置刷新,擁有方便的管理界面,因此就改成使用Nacos了。原來的mall-registry和mall-config模塊已被移除,在config文件夾中存放了Nacos中的配置,啓動項目時須要導入到Nacos中去。
以前項目中有個mall-security的模塊,我把它稱爲安全模塊。全部須要權限校驗的模塊都須要依賴它,有點工具包的感受,在微服務中使用總感受不三不四。
此次改成使用Oauth2,添加了認證中心mall-auth,實現統一認證和鑑權,更加符合微服務權限控制,
於項目中存在兩套不一樣的用戶體系,後臺用戶和前臺用戶,認證中心對多用戶體系也有所支持,訪問認證中心時使用不一樣的client_id和client_secret便可區分不一樣用戶體系,後臺用戶使用admin-app:123456,前臺用戶使用portal-app:123456。
對原來的登陸接口作了兼容處理,分別會從內部調用認證中心獲取Token,依然可使用。
以前每一個微服務都有本身的API文檔地址,須要單獨訪問。此次把全部微服務的API文檔都聚合到了網關上,統一了訪問入口,直接訪問網關的API文檔地址便可
Spring Cloud 和SpringBoot有着版本對應關係,升級到SpringBoot 2.3.0正好對應了該版本。
因爲部分組件的升級及項目結構的改變,部署文檔也更新了,部署有問題的參考最新文檔!
mall-swarm在Windows環境下的部署:
mall-swarm在Linux環境下的部署(基於Docker容器)
其餘更新內容和mall項目基本相同
查看註冊中心服務信息;
監控中心應用信息;
API文檔信息;
日誌收集系統信息;
可視化容器管理;