A Simple Backend Service for Short Video Platform Implements by Golang
使用 Windows 环境进行开发
NOTE: 在高并发场景下,取消DB层面的外键约束,由应用层实现
| 语言 | Golang 1.19 |
|---|---|
| 数据库 | MySQL 8.x |
| HTTP框架 | Gin |
| ORM框架 | GORM |
| 加密 | bcrypt |
| 视频处理 | ffmpeg |
| 缓存 | Redis |
| 对象存储 | Tencent COS |
由于时间有限,且对Golang微服务生态不了解,因此拟采用单体架构开发,后续考虑采用微服务架构重构
整体采用SpringBoot的三层架构实现,即 controller - service - dao
- 预编译SQL,防止SQL注入
- Redis 缓存热点数据
- 敏感词过滤
- Redis List 作为MQ异步更新MySQL
| 功能项 | 进度 |
|---|---|
| 视频Feed流 | OK |
| 视频投稿 | OK |
| 个人主页 | OK |
| 喜欢列表 | OK |
| 用户评论 | OK |
| 关系列表 | OK |
| 消息 | OK |
- 热点数据缓存
- 分库分表、读写分离
- 接口限流熔断降级
- 微服务化
- 响应结构体解耦
- 字节跳动青训营



