目前仅实现了一个简易版的抖音,一些基本功能能够正常进行使用,但也有一些未完成的功能。
- mysql8 -> sql文件保存在config中。
- ffmpeg -> 参考
https://zhuanlan.zhihu.com/p/118362010
- nginx -> 配置文件保存在 config 中。
- vsftpd
https://blog.csdn.net/qq_51212018/article/details/110350950
注:该demo目前还没有引入redis,rabbitMQ等中间件,仅仅是借助MySQL实现的。
- 用户登录功能 -> 用户的token已经使用了MD5进行加密
- 用户注册功能
- 用户信息功能(Favorite_count 和 Follower_count的更新还没有完成)
- 视频流功能 (按照官方的要求返回了对应的参数,但是视频中的用户信息没有正确的获取到,后期需要完善此功能,时间参数暂时没有考虑进去)
- 视频投稿功能
- 点赞
- 点赞列表
- 评论功能
- 评论列表功能
- 关注功能
- 关注列表
- 粉丝列表
- 朋友列表
- 消息系统
- 消息列表
目前已实现Redis+RabbitMQ的点赞功能。
-
Redis的作用如下:
-
点赞信息的缓存(视频有哪些人点赞,用户点赞了哪些视频)
-
用户点赞列表的快速查询
-
-
RabbitMQ的作用如下:
-
实现点赞和取消点赞的Redis和MySQL数据库的一致性
-
防止高并发的点赞操作导致的MySQL数据库的击穿
-
其中为了在查询Redis中,为了防止数据库不存在的数据或多用户同时向数据库发送相同请求,使用了双重校验锁。
- 将部分数据存入redis
能够存入Redis的数据有,点赞、评论、关注。因为前端会将得到的Feed信息送入缓存,因此不需要非常及时的同步。
- 微服务架构
该简易项目都是在用一个服务上实现的,因此后期需要考虑如何将一个服务进行拆分并负载均衡。