🎯 项目类型:在线视频平台后端系统
🧠 技术栈:Spring Boot · MyBatis-Plus · MySQL · Redis · RabbitMQ · Guava
BiliLike 是一个类 Bilibili 的视频平台后端项目,支持用户上传、播放视频,具备内容审核、个性化推荐、视频热度排行等核心功能。
| 分类 | 技术组件 |
|---|---|
| 后端框架 | Spring Boot、MyBatis-Plus |
| 数据存储 | MySQL、Redis、MinIO |
| 消息中间件 | RabbitMQ |
| 多媒体处理 | FFmpeg、KKFileView、阿里云内容安全服务 |
| 工具库 | Guava、RoaringBitmap |
-
大文件上传支持
- 实现秒传、断点续传与分片上传机制
- 基于哈希校验确保文件完整性与去重处理
-
视频存储与处理一体化方案
- 使用 MinIO 管理视频对象存储
- 利用 FFmpeg 进行格式转码、封面截图
- 接入 KKFileView 实现预览服务
- 结合阿里云内容安全 API 实现违规内容自动识别
-
用户行为数据高效存储与压缩
- 利用 RoaringBitmap 压缩用户行为标识
- 结合 Guava 本地缓存 + MySQL 持久化提升读写性能
-
关注系统与推送机制设计
- 采用推模式将新视频通过 RabbitMQ 批量推送给关注用户
- 利用 Redis ZSet 构建每个用户的“收件箱”
- 使用游标优化分页推送性能,提升大规模消息分发效率
-
个性化推荐系统
- 基于用户标签概率动态调整推荐内容
- 引入随机因子避免推荐重复,提升内容多样性
-
视频热度排行榜
- 利用热度衰减公式 + 小根堆计算热门视频
- 实现热度排行动态调整,增强用户关注时效性