zuihou-admin-cloud 2.1 發佈,租戶模式支持動態新增數據源

簡介

基於`SpringCloud(Hoxton.SR1)` + `SpringBoot(2.2.5.RELEASE)` 的 SaaS型微服務腳手架,具備用戶管理、資源權限管理、網關統一鑑權、Xss防跨站攻擊、自動代碼生成、多存儲系統、分佈式事務、分佈式定時任務等多個模塊,支持多業務系統並行開發,支持多服務並行開發,可以作為後端服務的開發腳手架。代碼簡潔,架構清晰,非常適合學習使用。核心技術採用Nacos、Fegin、Ribbon、Zuul、Hystrix、JWT Token、Mybatis、SpringBoot、Seata、Nacos、Sentinel、RabbitMQ、FastDFS等主要框架和中間件。

希望能努力打造一套從 SaaS基礎框架 - 分佈式微服務架構 - 自動化部署 - 系統監測 的解決方案。本項目旨在實現基礎能力,不涉及具體業務。

新增:

1. 新增認證服務(zuihou-oauth-server:負責登錄、獲取用戶所有權限、資源、菜單等功能)2. 參照SpringSecurity原理,調整 認證服務登錄、刷新token等 接口相關邏輯3. 參照SpringSecurity原理,新增 zuihou-security-starter 模塊,實現 URI權限配置 和 鑑權4. 新增 租戶模式 支持多數據源模式:動態增減數據源,一個租戶一個庫一個數據源5. 多數據源模式相關代碼和配置,調整成一鍵切換模式6. 新增多數據源模式完美支持分佈式事務(seata 1.0.0) 7. 新增刪除租戶時,刪除租戶數據和數據庫的接口,並刪除該租戶的數據源8. 新增記錄在線用戶功能 & 主動T人下線功能

優化:

1. 重寫token生成規則和方法2. 優化用戶登錄邏輯,根據配置決定是否限制用戶重複登錄、多端登錄。3. 登錄日誌改成發佈事件的方式。4. 移除 zuihou-shiro-starter 和 zuihou-user-starter 模塊5. 移除 zuihou-zuul-* 模塊中沒用的幾個模塊6. 優化swagger配置,支持接口認證等參數7. 配置文件調整:zuihou.database.bizDatabase -> zuihou.database.tenantDatabasePrefix8. 將分散在各個服務的枚舉接口(/enums)合併到 Oauth 服務,前端在登錄之後,一次性拉取存放在前端緩存中。9. 日誌統一存儲路徑: logging.file.path 移動到

src/main/filters/config-dev.properties 統一配置10. 將租戶模塊相關代碼獨立到權限服務的 zuihou-tenant-** 模塊中,降低代碼耦合度,增強系統的獨立性。(有條件的朋友,完全可以將租戶模塊獨立成一個服務)11. 將非租戶模式、字段租戶模式、SCHEMA/數據源租戶模式的數據庫腳本區分開。12. 簡化租戶後臺系統相關接口邏輯 (zuihou-admin-ui)13. 廢除之前的配置在Controller層的聲明式事務配置,採用註解配置事務,調整事務控制到service層,通過註解來控制事務,原因是兼容多數據源模式。14. SuperCacheServiceImpl 相關方法加上事務註解。15. SuperCacheServiceImpl 相關操作緩存的方法去除@Cache註解,採用cacheChanel方式,防止子類this調用時,無法使用緩存的bug16. 拆分上下文攔截器,將租戶信息、MDC分離到 攔截器TenantContextHandlerInterceptor(封裝租戶相關請求頭)、MdcHandlerInterceptor(封裝日誌相關線程變量)17. 優化操作日誌相關配置,實現根據條件實例不同的bean18. 簡化order和demo服務的分佈式事務配置 19. SpringUtils類增加發布事件的靜態方法20. 廢棄IgnoreTokenConfig,調整為配置文件方式: IgnoreTokenProperties

修復:

1. 修復UserQuery構造方法報NPE的bug # fix I1BXPW2.修復個人中心修改資料的bug # fix I1CIEN3. 完善租戶模塊相關功能,並修復一個弱智bug


升級指南:

1. 更新 zuihou-admin-cloud, 待依賴更新完畢後,根據IDEA提示,刪除zuihou-zuul-base、zuihou-zuul-authentication、zuihou-zuul-ratelimit 等模塊

2. 若要更新zuihou-commons(該項目已經發布中央倉庫,若不想看源碼,可以不用管),待依賴更新完畢後,根據IDEA提示,刪除zuihou-user-starter、zuihou-shiro-starter等模塊

3. 編譯項目

4. 重新導入 數據庫腳本 (數據庫改動較大,請務必重新執行,執行時,看著: docs/sql/腳本說明.md 根據自身情況導入腳本)

5. 重新導入 nacos 配置文件 (配置文件改動很大,刪除合併了很多配置)

6. 啟動項目


分享到:


相關文章: