Simple Douyin is a project imitated from ByteDance's Douyin(Tiktok)
演示视频:演示视频
项目设计文档:项目设计文档
-
采用开源 HTTP 框架 Hertz、开源 RPC 框架(Kitex)及开源 ORM 框架 GORM 开发,基于 RPC 微服务 + Hertz 提供 HTTP 服务 + GORM 实现 ORM
-
基于《接口文档在线分享- Apifox》提供的接口进行开发,使用《极简抖音App使用说明 - 青训营版 》提供的APK进行Demo测试, 功能完整实现 ,前端接口匹配良好。
-
代码结构采用 (HTTP API 层 + RPC Service 层 + Dal 层) 项目结构清晰 ,代码符合规范
-
使用 JWT 进行用户token的校验
-
使用 ETCD 进行服务发现和服务注册;
-
使用 Gorm 对 MySQL 进行 ORM 操作;
-
使用 Hertz 中间件 tracer 实现链路跟踪;
-
使用 Pprof 中间件实现代码性能检测
-
使用 Redis 中间件作为数据库缓存
- go1.19.5 linux/amd64
- hertz v0.5.2
- kitex v0.4.4
-
Edit pkg/constant.go to config your project
-
Setup basic dependency(please install docker & docker-compose previously)
make start
- run user service
cd cmd/user
sh build.sh
sh output/bootstrap.sh
- run feed service
cd cmd/feed
sh build.sh
sh output/bootstrap.sh
- run publish service
cd cmd/publish
sh build.sh
sh output/bootstrap.sh
- run comment service
cd cmd/comment
sh build.sh
sh output/bootstrap.sh
- run favorite service
cd cmd/favorite
sh build.sh
sh output/bootstrap.sh
- run relation service
cd cmd/relation
sh build.sh
sh output/bootstrap.sh
- run message service
cd cmd/message
sh build.sh
sh output/bootstrap.sh
- run api service
cd cmd/api
go build
./api
- Publish 服务
publishList获取视频列表流程图:
- Favorite 服务
favoriteAction点赞流程图:
favoriteList获取点赞列表流程图:
- Comment 服务
Comment服务流程图:包含三种服务:获取评论列表、发表评论、删除评论
- Relation 服务
Relation 服务流程图:包含五种服务:获取关注/粉丝/好友列表、关注用户、取关用户
- Feed 服务
Feed 服务流程图:
- Message 服务
Message服务流程图:包含消息发送和消息历史查询
《抖音项目方案说明》:抖音项目方案说明
《接口文档在线分享- Apifox》:接口文档在线分享- Apifox
《极简抖音App使用说明 - 青训营版 》:极简抖音App使用说明 - 青训营版