一个用kitex和hertz构建,根据不同场景采用MySQL、Minio、MongoDB、Redis存储,实现了上述方案说明的基础、互动、社交接口的,划分为网关、用户、视频、社交、交互五个微服务的服务端项目。
| 服务名 | 功能 | 框架 | 协议 | 路径 | IDL |
|---|---|---|---|---|---|
| 网关 | 接收HTTP请求 | kitex/hertz | http | cmd/api | idl/api.thrift |
| 用户 | 注册、登录、用户信息 | kitex/gorm | thrift | cmd/user | idl/user.thrift |
| 视频 | 上传视频、视频信息、视频流 | kitex/gorm | thrift | cmd/video | idl/video.thrift |
| 交互 | 点赞、评论 | kitex/gorm | thrift | cmd/interact | idl/interact.thrift |
| 社交 | 关注、聊天 | kitex/gorm | thrift | cmd/social | idl/social.thrift |
docker-compose upcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/user
sh build.sh
sh output/bootstrap.shcd cmd/api
sh run.sh注意:服务地址、端口需在pkg/const及docker-compose.yaml中视情况修改配置
- 引入消息队列中间件:以异步的方式实现对视频文件处理和保存以及保证缓存与数据库的一致性
- 优化微服务拆分:避免强耦合和循环依赖