Gopan-基于go-zero实现慕课网实战仿百度网盘项目
🏠架构
🚀技术栈
| 功能 | 实现 |
|---|---|
| http框架 | gozero |
| rpc框架 | gozero |
| orm框架 | gorm |
| 数据库 | Innodb-cluster,redis-cluster |
| 对象存储 | 腾讯云cos,minio集群 |
| 服务发现与配置中心 | etcd |
| 链路追踪 | jaeger |
| 服务监控 | prometheus,grafana |
| 消息队列 | kafka |
| 日志搜集 | filebeat,go-stash,elasticsearch,kibana |
| 网关 | traefik |
| 部署 | Docker,docer-compose |
📣项目功能简介
user服务
- 外接腾讯云
oss服务,手机号一键登录/注册 -
jwt双token鉴权 - 自己实现GitHub OAuth进行第三方登录
-
valiator包进行校验,并且加上中文翻译器
upload服务
- 可以选择本地或者
minio存储或者腾讯云COS进行存储 -
kafka异步处理Mysql存储文件元信息 - 使用批量消息聚合(
batcher)提升kafka性能 - 秒传
- 分块上传&&断点续传
download服务
- 腾讯云COS下载,自动提供大文件分块下载功能
- minio集群下载
- 流式返回文件给客户的
transfer服务
- 多个 goroutine中来并发消费数据,再存入mysql
filemeta服务
- 根据sha1查询file meta
- 客户的获取文件sha1
- 用户重命名文件
- 用户查询所有文件
- 用户文件的移动操作
代优化
- 从docker-compose部署迁移到k8s集群部署
- 使用GitHub Action/gitlab jenkins 进行 CI/CD
- 分布式引入,mapreduce思想
- ....
许可证
gopan 在 MIT 许可证下开源,请在遵循 MIT 开源证书 规则的前提下使用
🎉感谢
创造不易,如果觉得对大家有帮助,希望点点Star支持一下🤗🤗🤗