Gopan-基于go-zero实现慕课网实战仿百度网盘项目
项目地址:https://github.com/liuxianloveqiqi/Gopan
🏠架构
🚀技术栈
功能 | 实现 |
---|---|
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进行第三方登录
-
valiato
r包进行校验,并且加上中文翻译器
upload服务
- 可以选择本地或者
minio
存储或者腾讯云COS
进行存储 -
kafka
异步处理Mysq
l存储文件元信息 - 使用批量消息聚合(
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支持一下🤗🤗🤗
参考
慕课网实战项目:Go实战仿百度云盘 实现企业级分布式云存储系统