✅ 项目技术选型方案
🧱 一、整体架构风格
项目层级 |
技术选型 |
说明 |
架构风格 |
微服务架构(Spring Cloud) |
独立部署、易扩展、易维护 |
服务通信 |
HTTP(RestTemplate 或 Feign)+ RocketMQ |
同步调用 + 异步事件 |
注册中心 |
Nacos |
服务注册、发现、配置中心 |
配置中心 |
Nacos 配置管理 |
多服务统一配置 |
API网关 |
Spring Cloud Gateway |
路由转发、权限验证、限流 |
服务监控 |
Spring Boot Admin + Actuator |
实时查看服务状态 |
📦 二、后端技术栈
模块 |
技术 |
说明 |
微服务框架 |
Spring Boot + Spring Cloud Alibaba |
轻量、成熟、社区活跃 |
网关层 |
Spring Cloud Gateway |
支持路由、限流、鉴权 |
用户鉴权 |
Spring Security + JWT |
Token 鉴权,接口保护 |
消息队列 |
RocketMQ |
弹幕异步处理、事件解耦 |
异步任务 |
RocketMQ + @Async |
用户行为、通知、日志处理 |
数据访问 |
MyBatis-Plus |
简洁、高效的数据操作 |
数据库 |
MySQL |
主体业务数据持久化 |
缓存 |
Redis |
登录态、弹幕热数据、限流 |
分布式锁 |
Redisson |
防止重复上传/重复弹幕等问题 |
对象存储 |
MinIO(可替代阿里OSS) |
视频、封面图等大文件上传 |
视频转码 |
FFmpeg(本地调用) |
mp4/HLS 格式转码 |
文件上传 |
Multipart 分片上传 + 秒传机制(可选) |
大文件上传优化方案 |
异常处理 |
Spring AOP + 全局异常捕获 |
返回标准 JSON 错误响应 |
日志系统 |
Logback + ELK(可选) |
可扩展做日志分析 |
单元测试 |
JUnit5 + Mockito |
各模块测试覆盖 |
💻 三、前端技术选型
项目部分 |
技术 |
说明 |
技术栈 |
原生 HTML + CSS + JavaScript |
简洁直接,适合后端主导开发 |
视频播放 |
Video.js |
强大、免费、兼容性好 |
弹幕支持 |
WebSocket + Canvas 或 DOM 渲染 |
实现实时弹幕飘屏 |
弹幕发送 |
原生 AJAX / WebSocket 发送接口 |
与后端集成 |
页面构建 |
可使用简单模板或静态 HTML 文件 |
可结合 Thymeleaf 做 SSR(可选) |
🧰 四、开发与部署工具
工具 |
用途 |
推荐 |
Git + GitHub / Gitea |
版本控制 |
必备 |
Maven |
构建管理 |
Spring Boot 默认 |
Docker |
容器化部署 |
支持微服务拆分部署 |
Docker Compose / K8s |
服务编排 |
本地推荐 Compose,上线推荐 K8s |
Postman / Swagger |
接口测试 |
使用 Swagger 自动生成文档 |
RabbitMQ Console / RocketMQ Console |
消息调试 |
查看消息队列状态 |
📺 五、服务模块拆分建议(按微服务分层)
微服务 |
描述 |
user-service |
用户注册、登录、认证(JWT) |
video-service |
视频上传、转码、播放、信息管理 |
comment-service |
评论、点赞、收藏等用户互动 |
danmaku-service |
弹幕接收、过滤、推送(RocketMQ + WebSocket) |
file-service |
文件上传接口、MinIO 存储对接 |
admin-service |
后台管理(视频审核、用户管理) |
search-service (可选) |
视频搜索、标签索引(可结合 ElasticSearch) |
gateway-service |
请求入口、路由、鉴权、限流 |
notification-service (可选) |
系统通知、用户举报处理、异步发消息 |
📌 说明
- 你可以先开发单体版验证功能逻辑,之后再拆服务。
- 所有服务都可以部署为独立的 Spring Boot 应用。
- 前期部署环境可以本地运行 + Docker Compose 管理 Redis、MinIO、RocketMQ。
- 弹幕服务是后期的一个关键亮点,用 WebSocket + RocketMQ 解耦,支撑高并发弹幕实时推送。