✅ 项目技术选型方案
🧱 一、整体架构风格
项目层级 | 技术选型 | 说明 |
---|---|---|
架构风格 | 微服务架构(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 解耦,支撑高并发弹幕实时推送。