Skip to content

使用hertz+kitex微服务框架进行搭建,使用mysql和腾讯对象存储cos进行数据存储,使用redis缓存数据,rabbitmq消息队列,使用etcd进行服务注册与发现

Notifications You must be signed in to change notification settings

pot-not-fish/douyin

Repository files navigation

演示视频

https://www.bilibili.com/video/BV1dx421Z7qu

第一版Go-zero地址

https://github.com/pot-not-fish/douyin-Goteam

后端地址

159.75.186.106:8888(暂时无法使用,之前打算迁移到k3s,但是服务器缓存跑满卡炸了,重装了一次)

具体接口请看接口文档

项目目录

douyin
|-- hertz-server  api网关
|-- comment-rpc   评论RPC服务
|-- favorite-rpc  点赞RPC服务
|-- relation-rpc  关注RPC服务
|-- video-rpc     视频RPC服务
|-- user-rpc      用户RPC服务
|-- relation-mq   关注消息队列
|-- favorite-mq   点赞消息队列

实现主要功能

互动方向 社交方向
基础功能项 视频 Feed 流、视频投稿、个人主页
基础功能项说明 视频Feed流:支持所有用户刷抖音,视频按投稿时间倒序推出视频投稿:支持登录用户自己拍视频投稿个人主页:支持查看用户基本信息和投稿列表,注册用户流程简化
方向功能项 喜欢列表 用户评论 关系列表
方向功能项说明 登录用户可以对视频点赞,在个人主页喜欢Tab下能够查看点赞视频列表 支持未登录用户查看视频下的评论列表,登录用户能够发表评论 登录用户可以关注其他用户,能够在个人主页查看本人的关注数和粉丝数,查看关注列表和粉丝列表

架构设计

Pasted image 20240218181454.png

微服务拆分

Pasted image 20240219112924.png

性能测试

测试流程

  • 每个接口在短时间内请求50次,并且时间间隔为0
  • 测试代码如下
pm.test("success send", function (){
    const responseJson = pm.response.json();
    pm.expect(responseJson.status_code).to.eql(0);
})

发布评论

  • 平均响应速度为83ms,50个测试用例全部通过

    Pasted image 20240223121348.png

feed流

  • 平均响应速度为347ms,50个测试用例全部通过 Pasted image 20240223121715.png

查看视频评论

  • 平均响应速度为470ms,50个测试用例全部通过 Pasted image 20240223122001.png

查看用户信息

  • 平均响应速度为33ms,50个测试用例全部通过 Pasted image 20240223122258.png

About

使用hertz+kitex微服务框架进行搭建,使用mysql和腾讯对象存储cos进行数据存储,使用redis缓存数据,rabbitmq消息队列,使用etcd进行服务注册与发现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published