当前位置: 首页 > news >正文

分布式文件存储-FastDFS

分布式文件存储-FastDFS

一、FastDFS简介

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的 问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件 上传、下载等服务。

二、FastDFS体系结构

FastDFS 架构包括 Tracker server 和 Storage server。客户端请求 Tracker server 进行文件上传、下载,通过Tracker server 调度最终由 Storage server 完成文件上传和下载

Tracker server 作用是负载均衡和调度,通过 Tracker server 在文件上传时可以根据一些策略找到Storage server 提供文件上传服务。可以将 tracker 称为追踪服务器或调度服务器。Storage server 作用是文件存储,客户端上传的文件最终存储在 Storage 服务器 上,Storageserver 没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。 可以将storage称为存储服务器。

  image

三、上传流程

 image

客户端上传文件后存储服务器将文件 ID 返回给客户端,此文件 ID 用于以后访问该文件 的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。

 image

组名:文件上传后所在的 storage 组名称,在文件上传成功后有storage 服务器返回,需 要客户端自行保存。

虚拟磁盘路径:storage 配置的虚拟路径,与磁盘选项store_path*对应。如果配置了 store_path0 则是 M00,如果配置了 store_path1 则是 M01,以此类推。

数据两级目录:storage 服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据 文件。

文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储 服务器 IP 地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。

四、FastDFS搭建

我们使用Docker搭建FastDFS的开发环境

(1)拉取镜像

docker pull morunchang/fastdfs

(2)运行tracker

docker run ‐d ‐‐name tracker ‐‐net=host morunchang/fastdfs sh tracker.sh

(3)运行storage

docker run ‐d ‐‐name storage ‐‐net=host ‐e TRACKER_IP=<your tracker 
server address>:22122 ‐e GROUP_NAME=<group name> morunchang/fastdfs sh storage.sh
  • 使用的网络模式是–net=host, 替换为你机器的Ip即可
  • 是组名,即storage的组
  • 如果想要增加新的storage服务器,再次运行该命令,注意更换新组名

(4)修改nginx的配置

  进入storage的容器内部,修改nginx.conf

docker exec ‐it storage  /bin/bash

  进入后

vi /data/nginx/conf/nginx.conf

  添加以下内容

location /group1/M00 { 
   proxy_next_upstream http_502 http_504 error timeout invalid_header;      proxy_cache http‐cache; 
     proxy_cache_valid  200 304 12h; 
     proxy_cache_key $uri$is_args$args; 
     proxy_pass http://fdfs_group1; 
     expires 30d; 
 }

(5)退出容器

exit

(6)重启storage容器

docker restart storage

 

http://www.jsqmd.com/news/139726/

相关文章:

  • 《基于PCA的人脸识别系统实现》
  • 成功验收丨威迈尔机器人多品牌混合调度系统赋能精密制造
  • Java毕设项目:基于协同过滤算法的动漫推荐系统(源码+文档,讲解、调试运行,定制等)
  • Windows系统文件vbscript.dll丢失损坏问题 下载修复
  • 2025阀门厂家推荐排行榜:从产能到专利的权威对比 - 爱采购寻源宝典
  • Acrobat Pro DC 2025的使用技巧
  • Windows系统文件usercpl.dll丢失损坏问题 下载修复
  • Java毕设项目:基于springboot的旅游网站系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 免费SSL证书申请自动验证:DNS解析代理
  • 2026高职移动开发专业,高薪证书报考指南
  • Java计算机毕设之基于Springboot+Vue的旅游推荐系统设计与实现基于springboot的旅游网站系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 从化最优质楼盘:五大优质楼盘专业指南 - 品牌测评家
  • Windows系统文件UXInit.dll缺少损坏问题 下载修复
  • 2025年AI写论文必备神器:9款工具实测,1小时生成8000字论文并附真实参考文献!
  • Java计算机毕设之基于Springboot+Vue动漫推荐平台管理系统基于协同过滤算法的动漫推荐系统(完整前后端代码+说明文档+LW,调试定制等)
  • VAN.dll文件缺失找不到损坏问题 免费下载方法
  • 东南亚海外仓一件代发库存差异踩雷?4大原因+落地解决方案
  • 解码人类行为密码:驱动我们的15种深层欲望
  • [特殊字符] 一文看懂:Android 系统中如何“默认开启/关闭 USB 调试”?
  • Java毕设选题推荐:基于vue+协同过滤算法的动漫推荐系统热门动漫浏览、文章专栏阅读【附源码、mysql、文档、调试+代码讲解+全bao等】
  • CAD2025基础入门教程
  • Windows系统文件vb5chs.dll缺少损坏找不到问题 下载修复
  • 企业AI智能体官网:提升效率、流量与售后能力的关键之选
  • [驱动之路(九)——UART(串口)子系统]学习总结,万字长篇,一文彻底搞懂UART(串口)子系统(含串口数据收发流程解析)
  • 基于Uniapp的派出所业务管理系统微信小程序(程序+文档+讲解)
  • 医疗自动标注漏医生隐写症状 后来补NLP规则引擎才救回诊断准确率
  • 探寻辉昂印刷厂:口碑、可靠与性价比的融合
  • 企业AI智能体官网:如何选到界面友好、紧跟技术趋势且性价比高的平台
  • 基于Vue.js和Node.js线上美术馆网站平台的设计与实现(程序+文档+讲解)
  • 探寻精准服务、适应市场、前景好的企业AI智能体官网