gdfs 分布式文件存储 gdfs

llakcs • 3436 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
# gdfs 分布式文件系统 #### 介绍 gdfs分布式文件服务基于GO语言,前端页面使用vue-admin,主要用于小型文件存储。 它使用了带权重RoundRobin算法实现的负载均衡,使用技术框架gin+jwt+viper+gorm...等. #### 软件架构 网关和存储服务关系,如下图所示。 网关下一级是节点,每个节点下可以有N个服务,服务之间数据互相同步,互相备份。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/1028/170052_eca3d8a8_4814434.png "gdfs架构.png") #### 网关服务介绍: 主要功能 1. http请求转发 2. TCP服务端 3. 收集存储服务信息 4. 提供前端页面接口 5. 数据迁移 地址: https://gitee.com/llakcs/gdfs-center #### 文件存储服务介绍: 主要功能 1. 文件下载 2. 文件存储 3. 批量删除文件 4. 文件更新 5. 增量同步文件 6. TCP客户端 地址: https://gitee.com/llakcs/gdfs-service #### 配置文件: config.yml //数据库配置 gorm: username: ${DATASOURCE_USERNAME:root} password: ${DATASOURCE_PASSWORD:3100386a} dbname: ${FILE_DB_NAME:gdfs-center} address: ${DATASOURCE_HOST:127.0.0.1} dbport: ${DATASOURCE_PORT:3306} //文件存储位置 storagePath: linuxStorage: ./fileData/tenfineFiles/ //web启动配置 web: port: ${FILE_SERVER_PORT:8878} //tcp端口 tcptun: port: ${TCPTUN:5566} //日志配置 log: path: ./fileData/fileServicelog/ //存储服务注册网关配置 gdfs: registerConfig: port: ${REGPORT:5566} //端口 IpAddr: ${REGIP:127.0.0.1} //IP weight: "1" //权重 #### 支持协议 1.http 2.tcp 需要自己修改协议 #### 使用说明 1. 打开网关服务代码 go get 更新依赖 2. 进入网关服务代码根目录修改config.yml配置后运行程序 3. 进入网关服务代码找到web目录下gdfs-vue-admin改好vue相关配置 进入根目录 npm run dev 进入前端页面如下图所示 默认账号admin 密码123456 ![输入图片说明](https://images.gitee.com/uploads/images/2021/1028/212523_847e0a96_4814434.png "企业微信截图_16354275049433.png") 4. 点击登录后,进入系统后台 找到服务管理和节点管理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/1028/212840_78a0ac1a_4814434.png "企业微信截图_1635427650694.png") 5. 先点开节点管理选择创建节点,如下图所示 ![输入图片说明](https://images.gitee.com/uploads/images/2021/1028/213234_19b13263_4814434.png "企业微信截图_16354279271960.png") 6. 运行文件存储服务,再去前端服务管理页面找到文件服务点击绑定,把相应的服务绑到对应的节点上,如下图所示。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/1028/213806_8f64c1af_4814434.png "企业微信截图_16354282744941.png") 7. 全量迁移数据:应用场景单对单,即单个文件服务把现有数据拷贝到新的文件服务上,不管是文件还是数据库表数据。 # License MIT License
授权协议:
MIT
开发语言:
go+vue 查看源码»
操作系统:
linux
3436 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传