# 平台总览
## **主要特性**
- 前后端分离的企业级架构,前端支持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共享,如图:
![](https://img.kancloud.cn/d0/eb/d0ebb1dd1f9b614f81d2d8a28708ec85_998x606.png)
## **微服务集群方案**
![](https://img.kancloud.cn/62/1b/621bc210e9628823bc7114525a6ed09f_1511x835.png)