【视频观看系统】- 技术与架构选型


✅ 项目技术选型方案

🧱 一、整体架构风格

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

相关推荐
开开心心_Every2 小时前
便捷的电脑自动关机辅助工具
开发语言·人工智能·pdf·c#·电脑·音视频·sublime text
DoraBigHead2 小时前
你写前端按钮,他们扛服务器压力:搞懂后端那些“黑话”!
前端·javascript·架构
isNotNullX3 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark
Kookoos4 小时前
ABP VNext + .NET Minimal API:极简微服务快速开发
后端·微服务·架构·.net·abp vnext
码字的字节4 小时前
深入理解Transformer架构:从理论到实践
深度学习·架构·transformer
wzj_what_why_how4 小时前
Android网络层架构:统一错误处理的问题分析到解决方案与设计实现
android·架构
bug攻城狮4 小时前
Alloy VS Promtail:基于 Loki 的日志采集架构对比与选型指南
运维·架构·grafana·数据可视化
代码改变世界ctw4 小时前
ARM汇编编程(AArch64架构)课程 - 第5章函数调用规范
汇编·arm开发·架构
Antonio9155 小时前
【音视频】TS协议介绍
音视频