All Projects → diwuqingrou404 → filestore-server

diwuqingrou404 / filestore-server

Licence: other
基于golang实现的一种分布式云存储服务

Programming Languages

go
31211 projects - #10 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to filestore-server

file-storage-system
一个基于 Go 语言实现的分布式云存储服务,慕课网实战仿百度网盘项目。
Stars: ✭ 149 (+144.26%)
Mutual labels:  oss, rabbitmq, ceph
Fxshop
基于SpringBoot+SpringCloud微服务的商城项目(demo版 不可用于生产)
Stars: ✭ 82 (+34.43%)
Mutual labels:  oss, rabbitmq
rabbitmq-rtopic-exchange
RabbitMQ Reverse Topic Exchange
Stars: ✭ 25 (-59.02%)
Mutual labels:  rabbitmq
MinecraftNetwork
Minecraft server network backend
Stars: ✭ 35 (-42.62%)
Mutual labels:  rabbitmq
microservices-v9
Learn Microservices with Spring Boot - v9
Stars: ✭ 40 (-34.43%)
Mutual labels:  rabbitmq
vm-engine
vm-engine为“微视频”网站的后端,java语言开发。涉及技术包括,springboot,springcloud,mybaties,docker,websocket,rabbitmq,redis等。
Stars: ✭ 57 (-6.56%)
Mutual labels:  rabbitmq
Java-CS-Record
记录准备春招实习过程中,学习与复习的知识(模块化整理,非面试题速成)。注:暂停更新,后续请移步博客
Stars: ✭ 73 (+19.67%)
Mutual labels:  rabbitmq
oge
Page metadata as a service
Stars: ✭ 22 (-63.93%)
Mutual labels:  oss
Twikoo-Magic
Twikoo自定义表情列表 | HexoPlusPlus自定义表情列表(其实基于OwO的项目都可以用的啦)
Stars: ✭ 72 (+18.03%)
Mutual labels:  oss
devops
let devops for docker, dockerswarm ,k8s easy
Stars: ✭ 282 (+362.3%)
Mutual labels:  cicd
Go-gRPC-RabbitMQ-microservice
Go gRPC RabbitMQ email microservice
Stars: ✭ 107 (+75.41%)
Mutual labels:  rabbitmq
fastql
⚙️ Full stack, Modern Web Application Generator. ✨ Using FastAPI, GraphQL, PostgreSQL as database, Docker, automatic HTTPS and more. 🔖
Stars: ✭ 80 (+31.15%)
Mutual labels:  rabbitmq
Carrot
Carrot is a .NET lightweight library that provides a couple of facilities over RabbitMQ.
Stars: ✭ 14 (-77.05%)
Mutual labels:  rabbitmq
Online-Judge
Online Judge for hosting coding competitions inside NIT Durgapur made by GNU/Linux Users' Group!
Stars: ✭ 19 (-68.85%)
Mutual labels:  rabbitmq
ml-ops
Get your MLOps (Level 1) platform started and going fast.
Stars: ✭ 81 (+32.79%)
Mutual labels:  rabbitmq
Meal
[40시간만에 Swift로 iOS 앱 만들기] 전국 초/중/고등학교 급식 조회 애플리케이션
Stars: ✭ 15 (-75.41%)
Mutual labels:  oss
osschat
Apache Open Source Software Chat BOT
Stars: ✭ 115 (+88.52%)
Mutual labels:  oss
crates-io-cn
Source code of crates-io.cn, also tools sets for sync crates.io
Stars: ✭ 20 (-67.21%)
Mutual labels:  oss
terraform-external-module-artifact
Terraform module to fetch any kind of artifacts using curl (binary and text okay)
Stars: ✭ 13 (-78.69%)
Mutual labels:  cicd
voter-service
The Voter Spring Boot RESTful Web Service, backed by MongoDB, and uses RabbitMQ for IPC
Stars: ✭ 53 (-13.11%)
Mutual labels:  rabbitmq

distributed-fileserver

基于golang实现的一种分布式云存储服务

关于微服务架构交互逻辑

关于需要手动安装的库

如下:

go get github.com/garyburd/redigo/redis
go get github.com/go-sql-driver/mysql
go get github.com/garyburd/redigo/redis
go get github.com/gomodule/redigo/redis
go get github.com/json-iterator/go
go get github.com/aliyun/aliyun-oss-go-sdk/oss
go get gopkg.in/amz.v1/aws
go get gopkg.in/amz.v1/s3
go get github.com/streadway/amqp
go get github.com/gin-gonic/gin
go get github.com/gin-contrib/cors
go get github.com/micro/go-micro
go get github.com/mitchellh/mapstructure
go get github.com/jteeuwen/go-bindata/...
go get github.com/moxiaomomo/go-bindata-assetfs/...
go get github.com/gin-gonic/contrib/static
go get github.com/micro/go-micro/cmd
go get github.com/micro/go-plugins/registry/kubernetes
go get -v github.com/micro/go-plugins/wrapper/breaker/hystrix
go get -v github.com/juju/ratelimit
go get -v github.com/micro/go-plugins/wrapper/ratelimiter/ratelimit

其中如果有提示golang.org/x相关的包无法下载的话,可以参考这篇文章: 国内下载golang.org/x/net

关于应用启动

  • 在加入rabbitMQ实现文件异步转移之前,启动方式:

    • 启动上传应用程序:
# cd $GOPATH/<你的工程目录>
> cd $GOPATH/filestore-server
> go run main.go
  • 在加入rabbitMQ实现文件异步转移阶段,启动方式(分裂成了两个独立程序):

    • 启动上传应用程序:
# cd $GOPATH/<你的工程目录>
> cd $GOPATH/filestore-server
> go run service/upload/main.go
- 启动转移应用程序:
# cd $GOPATH/<你的工程目录>
> cd $GOPATH/filestore-server
> go run service/transfer/main.go
  • 微服务架构下启动方式(非容器化部署):

    • 一键启动微服务(start-all.sh):
> cd $GOPATH/filestore-server
> ./service/start-all.sh
 编译完成:  service/bin/dbproxy
 编译完成:  service/bin/upload
 编译完成:  service/bin/download
 编译完成:  service/bin/transfer
 编译完成:  service/bin/account
 编译完成:  service/bin/apigw
 已启动  dbproxy
 已启动  upload
 已启动  download
 已启动  transfer
 已启动  account
 已启动  apigw
微服务启动完毕.
- 一键关闭微服务(stop-all.sh):
> cd $GOPATH/filestore-server
> ./service/stop-all.sh
 已关闭:  apigw
 已关闭:  account
 已关闭:  transfer
 已关闭:  download
 已关闭:  upload
 已关闭:  dbproxy
执行完毕.
  • 微服务架构下启动方式(容器化部署):
> cd $GOPATH/filestore-server
# 脚本方式启动容器
> ./deploy/start-all.sh
# 脚本方式关闭容器
> ./deploy/stop-all.sh
# docker-compose方式启动容器
> cd ./deploy/service_dc
> sudo docker-compose up -d
# k8s方式启动微服务
> cd ./deploy/service_k8s
> kubectl apply -f svc_account.yaml
> kubectl apply -f svc_apigw.yaml
> kubectl apply -f svc_dbproxy.yaml
> kubectl apply -f svc_download.yaml
> kubectl apply -f svc_transfer.yaml
> kubectl apply -f svc_upload.yaml
> cd ./deploy/traefik_k8s
> kubectl apply -f service-ingress.yaml

进度说明:

  • 简单的文件上传服务
  • mysql存储文件元数据
  • 账号系统, 注册/登录/查询用户或文件数据
  • 基于帐号的文件操作接口
  • 文件秒传功能
  • 文件分块上传/断点续传功能
  • 搭建及使用Ceph对象存储集群
  • 使用阿里云OSS对象存储服务
  • 使用RabbitMQ实现异步任务队列
  • 微服务化(API网关, 服务注册, RPC通讯)
  • CI/CD(持续集成)

参考资料

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].