当前位置: 首页 > news >正文

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


✅ 项目技术选型方案

🧱 一、整体架构风格

项目层级技术选型说明
架构风格微服务架构(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 + JWTToken 鉴权,接口保护
消息队列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 解耦,支撑高并发弹幕实时推送。

http://www.xdnf.cn/news/1094095.html

相关文章:

  • 家庭网络中的服务器怎么对外提供服务?
  • NumPy-广播机制深入理解
  • 技术开发栈中 URL地址末尾加不加 “/“ 有什么区别?
  • Vue 中mounted 生命周期钩子的执行时机和 v-for 的渲染顺序
  • Mysql中的日志-undo/redo/binlog详解
  • Hexo + Butterfly + Vercel 完整个人Blog部署指南
  • 17.Spring Boot的Bean详解(新手版)
  • TCP的可靠传输机制
  • 正点原子学习 用户权限管理
  • 汽车工业制造领域与数字孪生技术的关联性研究​
  • Python数据分析案例|从模拟数据到可视化:零售门店客流量差异分析全流程
  • 17-C#封装,继承,多态与重载
  • PyTorch数据准备:从基础Dataset到高效DataLoader
  • Hadoop(一)
  • 操作系统核心技术剖析:从Android驱动模型到鸿蒙微内核的国产化实践
  • C++随机打乱函数:简化源码与原理深度剖析
  • 3 STM32单片机-delay延时驱动
  • (八)PS识别:使用 Python 自动化生成图像PS数据集
  • 智慧物流管理:动作识别与包装检测的协同突破
  • Python标准库:时间与随机数全解析
  • 方差、协方差和协方差矩阵
  • TCP/IP常用协议
  • Dify升级到1.5.1详细操作步骤,规避和RAGFlow的镜像冲突问题
  • 神经网络基础及API使用详解
  • 零知开源——STM32F407VET6驱动SHT41温湿度传感器完整教程
  • Linux的 `test`命令(或等价中括号写法 `[空格expression空格]`)的用法详解. 笔记250709
  • 恒盾C#混淆加密大师最新版本1.4.0更新 - 增强各类加密效果, 提升兼容性, 使.NET加密更简单
  • 深入理解图像二值化:从静态图像到视频流实时处理
  • HNU 操作系统 Smile_Laughter的学习心得
  • 图像硬解码和软解码