30c17f01e9
- Align deployment guidance with the current three-node Compose topology - Document the current frontend architecture and development workflow - Replace the stale API list with a controller-based route index
2.8 KiB
2.8 KiB
HAOVP 当前项目架构
本文档根据仓库当前代码、Maven POM、Docker Compose 和前端配置整理,版本变更后应优先检查这些文件。
技术栈
- Java 17、Spring Boot 3.2.4、Spring Cloud 2023.0.1、Spring Cloud Alibaba 2023.0.1.0
- Spring Cloud Gateway、Nacos Discovery/Config、OpenFeign、LoadBalancer、Sentinel
- Spring Security、JWT、MyBatis-Plus 3.5.11、MySQL 8、Redis 7
- RocketMQ 5.1.4(内容服务依赖)、MinIO(对象存储)、FFmpeg Java wrapper 0.8.0(内容服务依赖)
- Vue 3、TypeScript、Vite、Pinia;用户端使用 Vant 4、Artplayer + danmaku plugin,管理端使用 Element Plus、ECharts
- Docker Compose;Prometheus、Grafana、Micrometer Actuator 用于监控
项目当前没有 Seata 或 Spark 运行时依赖,不应在架构描述中宣称已使用分布式事务或 Spark 推荐。推荐服务目前基于用户行为权重、标签兴趣、视频相似度和热门策略组合推荐。
后端模块
| 模块 | 端口 | 职责 |
|---|---|---|
| video-gateway | 9000 | 统一入口、动态路由、JWT 校验、限流与 CORS |
| video-auth | 9001 | 用户认证、验证码、Access/Refresh Token、登录统计 |
| video-user | 9002 | 用户资料、关注、私信、通知、设置 |
| video-content | 9003 | 视频、分类、标签、上传、互动、弹幕、统计与审核接口 |
| video-comment | 9004 | 评论、回复、点赞、置顶与评论治理 |
| video-recommend | 9005 | 首页/热门/相似/标签推荐与用户行为兴趣 |
| video-admin | 9006 | 管理员认证、角色权限、用户/内容/评论管理、运营统计 |
各服务的 application.yml 只保留启动参数和 Nacos 导入配置,环境相关数据位于 Nacos:common.yaml、common-redis-{dev|ha}.yaml 和服务同名 YAML。
请求链路
用户端/管理端 -> video-gateway:9000 -> Nacos 服务发现 -> 业务微服务
-> MySQL/Redis/MinIO/RocketMQ
业务服务之间通过 OpenFeign 调用,服务不可用时使用 fallback;网关公开路由和白名单以 Nacos 中的 video-gateway.yaml 为准。
部署形态
- 单机开发/演示:
backend/docker-compose.yml或docker-compose.1panel.yml - 多节点部署:
docker-compose-node-01.yml、docker-compose-node-02.yml、docker-compose-node-03.yml,具体节点职责以对应 compose 文件和 Debian 部署手册为准 - 当前 MinIO 高可用部署采用 Node-01 统一业务写入、Node-02 副本同步方案,不是 MinIO 原生纠删码集群
配置原则
环境变量 > Nacos 配置 > 本地 application.yml。JWT secret、数据库/Redis/Nacos/MinIO 凭据、RocketMQ 地址均不得写入源码或文档;使用 .env 或部署平台密钥注入。