YuleZhang / douyin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Douyin

抖音项目服务端

具体功能内容参考飞书说明文档

服务模块说明

项目介绍见题目一:抖音项目【青训营】 - 飞书文档 (feishu.cn),接口说明见投稿接口 - 抖音极简版 (apifox.cn)

img

  • 采用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

运行方式

  1. 运行基础依赖
docker-compose up
  1. 运行api服务
cd cmd/api
sh run.sh
sh output/bootstrap.sh
  1. 运行user服务
cd cmd/user
sh build.sh
sh output/bootstrap.sh
  1. 运行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

About


Languages

Language:Go 89.9%Language:Thrift 5.4%Language:Shell 4.2%Language:Dockerfile 0.5%