抖音项目实现3: 项目总结 | 青训营笔记

1.项目介绍

实现极简版抖音,包括user service/ video service/ favorite service。
基础功能:

  • 视频Feed流:支持所有用户刷抖音,视频按投稿时间倒序推出
  • 视频投稿:支持登录用户自己拍视频投稿
  • 个人主页:支持查看用户基本信息和投稿列表,注册用户流程简化
    互动方向:
  • 点赞操作:登录用户可以给视频点赞和取消点赞。
  • 喜欢列表:登录用户,在个人主页喜欢Tab下能够查看点赞视频列表

2.架构设计

整体框架:
image.png
整体架构采用微服务架构,用户通过HTTP请求接入api层,api层分析HTTP请求调用不同的handler功能,而这些功能都对应着不同的微服务,通过etcd进行服务发现进而进行rpc调用。微服务user、video、favorite注册到etcd上。

3. 项目实现

user服务

目前基本实现登录,注册以及用户信息显示的功能接口

为了防止数据库意外泄露/破坏和出于保护用户隐私的目的, 不应该在数据库中存入明文密码。

常用做法是通过哈希算法对明文密码加密后存入数据库。本项目采用MD5码对明文密码进行散列编码,因此数据库中密码那一列并非明文。

但是人们有使用便于记忆的密码习惯, 并且不同应用也往往使用相同的密码。 因此使用MD5码散列后的编码仍可能一致。项目改进可以通过向密码中加盐的方式提高密码的保护等级。

video服务

目前基本实现了feed流,发布投稿,投稿列表的功能接口。在实现feed流以及投稿列表时,进行查询用户信息,并且查询favorite数据表是否点赞。

缓存采用了手写的miniCache。在video功能中,需要根据用户id获取发布列表,按发稿时间的倒序获取feed流。因此缓存中需要存储视频信息,及用户发布的视频信息列表。考虑到热点视频的作者就是热点用户的可能性。并将视频信息与用户列表解耦,减少视频信息在缓存中重复 。 缓存中记录的用户发布列表,里面仅含是视频id而不包含视频的详细信息。

favorite服务

实现了获取某用户的点赞列表,某用户对某video进行点赞或取消点赞操作。同样返回喜欢列表时,查询视频发布者的信息并且根据点赞/取消点赞的动作修改videos数据表中的作品点赞数。

多次点赞同一视频不能够马上更新喜欢的视频列表,之后可以做的优化是,采用video服务中的minicache进行先查询缓存找不到再查找数据库的方案,能够加速响应。

4.项目地址

github仓库:https://github.com/LaiYuShuang/douyin

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值