管理后台 - Vben Admin
引用文件
本文引用的文件
- README.md
- yudao-ui-admin-vben/README.md
- yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java
- sql/mysql/ik_yudao_base.sql
- yudao-module-system-biz/src/main/resources/application.yaml
- yudao-module-blacklist-biz/src/main/resources/application.yaml
- yudao-module-launcher-biz/src/main/resources/application.yaml
- yudao-module-device-biz/src/main/resources/application.yaml
- yudao-module-bpm-biz/src/main/resources/application.yaml
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/util/BannerApplicationRunner.java
- yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
- yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
- yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
- yudao-module-task/src/main/java/cn/iocoder/yudao/module/task/dal/dataobject/uotadetail/UotaDetailDO.java
- yudao-module-rule/src/main/java/cn/iocoder/yudao/module/rule/dal/dataobject/chain/RuleLiteflowChainDO.java
- yudao-module-rule/src/main/java/cn/iocoder/yudao/module/rule/util/RuleRunUtil.java
- yudao-module-rule/src/main/java/cn/iocoder/yudao/module/rule/service/business/RuleBusinessApiServiceImpl.java
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayLoadBalancer.java
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayReactiveLoadBalancerClientFilter.java
- yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/prometheus/PrometheusController.java
- yudao-module-blacklist/src/main/java/cn/iocoder/yudao/module/blacklist/controller/admin/blacklisted/AppBlacklistedController.java
- yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/framework/core/constant/DataSourceConstants.java
- yudao-module-task/src/main/java/cn/iocoder/yudao/module/task/framework/core/constant/DataSourceConstants.java
- yudao-module-device/src/main/java/cn/iocoder/yudao/module/device/constant/DataSourceConstants.java
- script/docker/docker-compose.yml
目录
简介
本项目为“Yudao Cloud”企业级微服务系统的一部分,提供基于 Vue3 + Vben Admin + Ant Design Vue 的管理后台实现思路与最佳实践。项目采用前后端分离架构,后端以 Spring Boot + Spring Cloud Alibaba 为核心,结合网关、注册中心、配置中心、缓存、数据库与时序库等中间件,形成完整的微服务生态。管理后台通过统一网关接入后端各业务模块,提供系统管理、基础设施、设备管理、运营、任务与OTA、规则引擎等业务能力。
项目结构
- 后端采用模块化设计,核心模块包括网关服务与多个业务模块(系统、基础设施、设备、运营、黑名单、任务、规则引擎等)。
- 前端提供多套模板(含 Vue3 vben 模板),并通过代码生成器一键生成前端页面与接口代码,降低重复开发成本。
- 项目内置统一异常处理、日志体系、监控与可观测性、消息队列集成、灰度发布机制等工程能力。
图示来源
章节来源
核心组件
- 网关与灰度发布:基于 Spring Cloud Gateway 的路由与灰度机制,支持按版本头进行流量分流。
- 统一异常处理:全局异常捕获与友好提示,避免未开启模块导致的不可用问题。
- 日志与监控:操作日志与 API 访问日志双轨记录;Prometheus 与 SkyWalking 集成。
- 消息队列:Kafka 用于日志上报与业务解耦。
- 数据存储:MySQL + TDengine 混合存储,满足 OLTP 与 OLAP 场景。
- 代码生成:内置代码生成器,支持 Vue3 vben 模板,一键生成前端页面与接口。
章节来源
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/util/BannerApplicationRunner.java
- yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
- yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/prometheus/PrometheusController.java
- yudao-module-blacklist/src/main/java/cn/iocoder/yudao/module/blacklist/controller/admin/blacklisted/AppBlacklistedController.java
- yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/framework/core/constant/DataSourceConstants.java
- yudao-module-task/src/main/java/cn/iocoder/yudao/module/task/framework/core/constant/DataSourceConstants.java
- yudao-module-device/src/main/java/cn/iocoder/yudao/module/device/constant/DataSourceConstants.java
架构总览
系统采用微服务架构,前端通过网关统一接入后端服务。核心服务包括网关、系统、基础设施、设备、运营、黑名单、任务与OTA、规则引擎等模块。中间件层提供注册与配置中心、缓存、业务数据库与时序数据库、消息队列等支撑能力。
图示来源
章节来源
详细组件分析
网关与灰度发布
- 灰度负载均衡:根据请求头中的版本号筛选匹配实例,若无匹配或缺失版本头则回退至全量实例。
- 灰度过滤器:在特定 URL Scheme 下触发灰度逻辑,基于权重随机选择实例。
图示来源
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayLoadBalancer.java
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayReactiveLoadBalancerClientFilter.java
章节来源
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayLoadBalancer.java
- yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayReactiveLoadBalancerClientFilter.java
日志与监控体系
- 操作日志:记录用户关键业务操作,便于审计与追踪。
- API 访问日志:记录 HTTP 请求详情,支持链路追踪编号关联。
- 监控集成:Prometheus 服务发现与 SkyWalking Agent 注入,实现全链路观测。
图示来源
- yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
- yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
章节来源
- yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java
- yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java
- yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/prometheus/PrometheusController.java
- script/docker/docker-compose.yml
规则引擎(LiteFlow)
- 规则实体:定义规则链名称、作用域、EL 表达式、业务类型、路由、命名空间、生效状态等。
- 缓存策略:Redis 缓存 + 分布式锁 + 数据库兜底,防止缓存穿透与击穿。
- 业务绑定:规则与业务维度(如 MAC、渠道、地区)绑定,变更需经审批流程。
图示来源
章节来源
- yudao-module-rule/src/main/java/cn/iocoder/yudao/module/rule/dal/dataobject/chain/RuleLiteflowChainDO.java
- yudao-module-rule/src/main/java/cn/iocoder/yudao/module/rule/util/RuleRunUtil.java
- yudao-module-rule/src/main/java/cn/iocoder/yudao/module/rule/service/business/RuleBusinessApiServiceImpl.java
任务与OTA数据模型
- OTA 升级详情:包含升级包元数据、是否系统应用、是否自动启动、安装路径、有效性与草稿数据等字段,体现审批流 与业务数据的结合。
图示来源
章节来源
前端模板与代码生成
- 前端模板:项目内置 Vue3 vben 模板,通过代码生成器一键生成前端页面与接口代码。
- 生成文件类型:包含管理后台接口、业务逻辑实现、数据访问层、数据库实体类、视图对象、前端列表页、菜单与数据表 SQL 等。
章节来源
- yudao-ui-admin-vben/README.md
- yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/codegen/inner/CodegenEngine.java
- sql/mysql/ik_yudao_base.sql
依赖分析
- 模块依赖:系统通过网关统一路由,核心模块包括系统、基础设施、设备、运营、黑名单、任务与OTA、规则引擎等。
- 基础设施依赖:JDK 17+、MySQL 8.0+、Redis 5.0+、Nacos 2.x、TDengine、Kafka。
- 配置管理:Nacos 作为统一配置中心,支持命名空间与多环境配置加载。
图示来源
章节来源
- README.md
- README.md
- yudao-module-system-biz/src/main/resources/application.yaml
- yudao-module-blacklist-biz/src/main/resources/application.yaml
- yudao-module-launcher-biz/src/main/resources/application.yaml
- yudao-module-device-biz/src/main/resources/application.yaml
- yudao-module-bpm-biz/src/main/resources/application.yaml
性能考虑
- 缓存策略:Redis 作为默认缓存实现,默认过期时间为 1 小时,配合规则引擎的缓存与分布式锁策略,降低数据库压力。
- 数据库与时序库:MySQL 用于核心业务数据,TDengine 用于海量日志与监控数据,实现 OLTP 与 OLAP 的分离。
- 消息队列:Kafka 用于日志上报缓冲与业务异步解耦,减少请求延迟与峰值冲击。
- 监控与可观测性:Prometheus 服务发现与 SkyWalking Agent 注入,便于全链路性能分析与问题定位。
章节来源
- README.md
- yudao-module-task/src/main/java/cn/iocoder/yudao/module/task/framework/core/constant/DataSourceConstants.java
- yudao-module-blacklist/src/main/java/cn/iocoder/yudao/module/blacklist/controller/admin/blacklisted/AppBlacklistedController.java
- yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/controller/prometheus/PrometheusController.java
- script/docker/docker-compose.yml
故障排查指南
- 未开启模块异常:当访问未开启或未导入表结构的模块时,全局异常处理器会返回特定错误提示,引导开发者参考文档进行开启。
- 端口冲突:各模块默认端口不同,启动前需确认端口占用情况,避免启动失败。
- 配置中心:确认 Nacos 命名空间与配置加载顺序正确,确保应用级配置生效。
章节来源
- yudao-framework/yudao-spring-boot-starter-web/src/main/java/cn/iocoder/yudao/framework/web/core/handler/GlobalExceptionHandler.java
- README.md
- yudao-module-blacklist-biz/src/main/resources/application.yaml
结论
本项目以 Spring Cloud Alibaba 为基础,结合网关、注册中心、配置中心、缓存、数据库与时序库等中间件,构建了完整的微服务生态。管理后台通过统一网关接入后端模块,提供系统管理、基础设施、设备管理、运营、任务与OTA、规则引擎等核心能力。项目内置统一异常处理、日志体系、监控与可观测性、消息队列集成、灰度发布机制与代码生成器,具备良好的工程化与扩展性。
附录
- 快速开始:准备 JDK 17+、MySQL 8.0+、Redis 5.0+、Nacos 2.x、TDengine、Kafka,执行构建与启动流程。
- 端口概览:系统模块、黑名单模块、运营模块、设备模块等默认端口可在对应模块的配置文件中查看。
- 文档资源:项目在 doc_code/docs 目录下提供详尽的文档,涵盖系统设计、对接文档、数据分析、黑名单机制、设备接入等。
章节来源