# 平臺總覽
## **主要特性**
- 前后端分離的企業級架構,前端支持VUE,Bootstrap(兼容IE8),后端支持單體應用和微服務架構,根據需要前后端可自由組合,靈活切換,滿足絕大部分項目的架構模式。
- 基于`Spring Boot 2.3.X`、`Spring Cloud Hoxton`和`Spring Cloud Alibaba`。
- 主要針對解決業務開發時常見的**非功能性需求**。
- 深度定制`Spring Security`真正實現了基于`RBAC`和`oauth2`的無狀態統一權限認證的解決方案。
- 面向互聯網設計,同時適合B端和C端用戶。
- 支持CI/CD多環境部署。
- 提供應用管理,方便第三方系統接入,**支持多租戶(應用隔離)**。
- 引入組件化的思想實現高內聚低耦合并且高度可配置化。
- 支持數據庫存儲路由信息,支持前端動態編輯。
- 注重代碼規范,嚴格控制包依賴,每個工程基本都是最小依賴。
- 完全響應式布局(支持電腦、平板、手機等所有主流設備)。
- 強大的一鍵生成功能(包括控制器、模型、視圖、菜單等)。
- 支持多數據源,簡單配置即可實現切換。
- 支持按鈕及數據權限,可自定義部門數據權限。
- 對常用js插件進行二次封裝,使js代碼變得簡潔,更加易維護。
- 完善的XSS防范及腳本過濾,徹底杜絕XSS攻擊。
- 國際化支持,服務端及客戶端支持。
- 完善的日志記錄體系簡單注解即可實現。
## **系統需求**
- JDK >= 1.8
- Redis >= 3.2
- Maven >= 3.0
- 瀏覽器支持
- Chrome 48 及更高版本
- Firefox 47 及更高版本
- Opera 35 及更高版本
- Safari 8 及更高版本
- Microsoft Internet Explorer8、9、10、11(僅針對前端框架為bootstrap)
- Microsoft Edge
## **數據庫支持**
- MySQL >= 5.7
- Oracle >= 9i
- DB2 >=8.x
- PostgreSQL >=10.x
- 達夢 >=8
- GaussDB >=300R002C00
- OceanBase >=2.2.77
## **技術選型**
**1、系統環境**
- Java EE 8
- Servlet 3.0
- Apache Maven 3
**2、主框架**
- Spring Boot 2.0
- Spring Framework 5.0
- Spring Security5.0
**3、持久層**
- Apache MyBatis 3.4
- Hibernate Validation 6.0
- Alibaba Druid 1.1
**4、視圖層**
- Bootstrap 3.3 + Thymeleaf 3.0
- 或者vue+avue+element
**5、完整的微服務架構**
- 基于Spring Cloud Gateway
- 基于Spring Cloud Hoxton.SR3
- 基于Spring Boot 2.3.0.RELEASE
**6、完善的權限控制**
- 基于Spring Security OAuth實現鑒權體系
- 深度定制,支持全流程的登錄授權,Server Resource
**7、完美的容器化支持**
- 支持docker部署
- 支持Rancher2 + Kubernetes部署
## **核心功能**
> - **統一認證功能**
> - 網關統一認證
> - url級權限控制
> - 支持oauth2的四種模式登錄
> - 支持用戶名、密碼加圖形驗證碼登錄
> - 支持手機號加密碼登錄
> - 支持openId登錄
> - 支持第三方系統單點登錄
> - **分布式系統基礎支撐**
> - 服務注冊發現、路由與負載均衡
> - 服務降級與熔斷
> - 服務限流(url/方法級別)
> - 統一配置中心
> - 統一日志中心
> - 統一分布式緩存操作類、cacheManager配置擴展
> - 分布式任務調度器
> - 支持CI/CD持續集成(包括前端和后端)
> - 分布式Id生成器
> - 分布式事務(強一致性/最終一致性)
> - 鏈路追蹤
> - **系統監控功能**
> - 服務調用鏈監控
> - 應用拓撲圖
> - 應用日志查詢
> - 慢查詢SQL監控
> - 應用吞吐量監控(qps、rt)
> - 服務降級、熔斷監控
> - 服務限流監控
> - 微服務服務監控
> - 服務器監控
> - redis監控
> - mysql監控
> - elasticSearch監控
> - nacos監控
> - prometheus監控
> - **業務基礎功能支撐**
> - 多租戶(應用隔離)
> - RBAC權限管理,實現細粒度控制(方法、url級別)
> - 快速實現導入、導出功能
> - 數據庫訪問層自動實現crud操作
> - 代碼生成器
> - 基于Hutool的各種便利開發工具
> - 網關聚合所有Swagger接口文檔
> - 統一跨域處理
> - 統一異常處理
## **單體集群方案**
在高并發的系統中可以使用Nginx做負載均衡器,集群部署多個應用實例,單體應用采用Spring Session將session保存至Redis實現session共享,如圖:

## **微服務集群方案**
