具体功能内容参考飞书说明文档
项目介绍见题目一:抖音项目【青训营】 - 飞书文档 (feishu.cn),接口说明见投稿接口 - 抖音极简版 (apifox.cn)
- 采用kitex作为微服务rpc框架
- 采用etcd进行服务发现和服务注册
- 采用go-jwt生成token进行用户验证
- 链路追踪基于opentracing
- 使用腾讯云OSS存储视频和图片
- 使用docker-compose管理容器
服务名称 | 模块介绍 | 模块负责人 | 模块内容 | 开发进度 |
---|---|---|---|---|
api | 抖音api服务 | Optimum | 获取服务列表、相应前端http请求 | 已完成 |
user | 抖音用户数据管理 | Optimum | 用户校验、用户注册、用户登录 | 已完成 |
video | 抖音视频流管理 | Optimum | 视频流、视频列表、视频上传 | 已完成 |
favorite | 抖音点赞管理 | FaMily。 | 点赞操作、点赞列表 | 开发中 |
comment | 抖音评论管理 | FaMily。 | 评论操作、评论列表 | 开发中 |
relation | 抖音关注与粉丝管理 | 嗷嗷哦润橘_ | 关注操作、关注列表、粉丝列表 | 开发中 |
开发时,可以参考以下流程完成各个模块
- 设计包含请求、响应以及服务信息的thrift-idl文件
- 编写特定模块服务端代码,依次完成dao,service,handler部分的开发,用于和api服务的交互
- 编写api服务端代码,封装rpc请求函数,在handler中基于gin处理解析http请求参数(即从http request到rpc request),并重新打包rpc响应内容(即从rpc response到http response)
- 运行基础依赖
docker-compose up
- 运行api服务
cd cmd/api
sh run.sh
sh output/bootstrap.sh
- 运行user服务
cd cmd/user
sh build.sh
sh output/bootstrap.sh
- 运行video服务
注意:运行视频服务之前,要配置好位于pkg/constants/constants.go
文件中腾讯云OSS访问的key和id,否则文件将无法上传
cd cmd/video
sh build.sh
sh output/bootstrap.sh
测试数据写在 demo_data.go 中,用于列表接口的 mock 测试
- 本项目基于青训营Go笔记项目,相关资料可参考青训营笔记服务项目概述
- ubuntu清华镜像配置
- hyper-v和安卓模拟器冲突问题解决见:Windows下hyper-v和安卓模拟器冲突问题
- BlueStacks可以访问windows server但无法访问wsl2 server问题,可以尝试添加一个端口转发,例如
netsh interface portproxy add v4tov4 listenaddress=<local ip address> listenport=8080 connectaddress=<<wsl2 ip address>> connectport=8080
- gin-jwt最新tag 2.8.0还不支持解析post请求中的token,但相关PR已经通过了,可以手动补充到项目依赖中
- 上传遇到
exec: "ffmpeg": executable file not found in %PATH% windows golang
,需要在wsl上安装好ffmpeg(ubuntu安装命令sudo apt install -y ffmpeg
) - 完整项目学习:https://github.com/a76yyyy/tiktok