原创

fastDfs入门

温馨提示:
本文最后更新于 2019年11月17日,已超过 1,622 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

fastDfs介绍

  • 开源的分布式文件系统。

  • FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

fastDfs的原理机制

推荐文章: https://juejin.im/post/5a51ff8df265da3e347b14e4

上传

上传机制.png

上传交互过程

  1. client询问tracker上传到的storage,不需要附加参数;

  2. tracker返回一台可用的storage;

  3. client直接和storage通讯完成文件上传。

下载

下载机制.png

下载的交互过程

  1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);

  2. tracker返回一台可用的storage;

  3. client直接和storage通讯完成文件下载。

Docker安装fastDfs

如果是阿里云需要开启的端口:88、80、23000、22122、8888。

docker pull morunchang/fastdfs

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

docker run -d --name storage --net=host -e TRACKER_IP=127.0.0.1:22122 -e GROUP_NAME=group1 morunchang/fastdfs sh storage.sh

例如我上传一个文件之后,会返回文件访问地址,然后加上IP地址和端口号即可访问原文件: http://127.0.0.1:8080/group1/M00/00/00/rBDDml3QIRCASf-AAACeKJzFOIA745.jpg

fastDfs命令操作

fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file

举个栗子:

root@aliyun-lzhpo-ecs:/# ls
bin   core  dev  home  lib64  mnt               mod_fastdfs_.conf  proc  run   srv           storage.sh     sys  tracker.sh  var
boot  data  etc  lib   media  mod_fastdfs.conf  opt                root  sbin  storage.conf  storage_.conf  tmp  usr
root@aliyun-lzhpo-ecs:/# wget http://cdn.lzhpo.com/oneblog/20190716012043906.jpg

root@aliyun-lzhpo-ecs:/# ls
20190716012043906.jpg  boot  data  etc   lib    media  mod_fastdfs.conf   opt   root  sbin  storage.conf  storage_.conf  tmp         usr
bin                    core  dev   home  lib64  mnt    mod_fastdfs_.conf  proc  run   srv   storage.sh    sys            tracker.sh  var

root@aliyun-lzhpo-ecs:/# fdfs_upload_file storage.conf 20190716012043906.jpg 
group1/M00/00/00/rBDDml3QJueAOYukAAjCo7BKqH4901.jpg

root@aliyun-lzhpo-ecs:/# 

group1/M00/00/00/rBDDml3QJueAOYukAAjCo7BKqH4901.jpg就是上传完毕返回的地址,接下来,带上我们的IP和端口即可访问了: http://127.0.0.1:8080/group1/M00/00/00/rBDDml3QJueAOYukAAjCo7BKqH4901.jpg

本文目录