Gopan-基于go-zero实现慕课网实战仿百度网盘项目

Gopan-基于go-zero实现慕课网实战仿百度网盘项目

项目地址:https://github.com/liuxianloveqiqi/Gopan

架构

Gopan-基于go-zero实现慕课网实战仿百度网盘项目_第1张图片

技术栈

功能 实现
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服务,手机号一键登录/注册
  • jwttoken鉴权
  • 自己实现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思想

许可证

gopanMIT 许可证下开源,请在遵循 MIT 开源证书 规则的前提下使用

感谢

创造不易,如果觉得对大家有帮助,希望点点Star支持一下

参考

慕课网实战项目:Go实战仿百度云盘 实现企业级分布式云存储系统

你可能感兴趣的:(golang,开发语言,后端,微服务,架构)