二、fastDFS原理

FastDFS 是余庆老师开发的一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。 
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

  1. Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的storage server和group,每个storage在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。多个Tracker之间是对等关系,不存在单点故障。
  2. Storage Server: 存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,组内的storage server上的数据互为备份。
  3. Client:客户端,上传下载数据的服务器 

模块之间的主要关系如下: 

 实现统一的对外下载访问入口的高可用架构,其中所有的Nginx只做下载用途,上传通过tracker进行上传

 

 

  下面再来看一张上传图片的时序图,从中可以看到,Client想上传图片,它先向Tracker进行询问,Tracker查看一下登记信息之后,告诉Client哪个storage当前空闲,Tracker会把IP和端口号都返回给Client,Client在拿到IP和端口号之后,便不再需要通过Tracker,直接便向Storage进行上传图片,Storage在保存图片的同时,会向Tracker进行汇报,告诉Tracker它当前是否还留有剩余空间,以及剩余空间大小。汇报完之后,Storage将服务器上存储图片的地址返回给Client,Client可以拿着这个地址进行访问图片。

 

 

 

再看一张下载图片的时序图,步骤如下:

1. client询问tracker下载文件的storage,参数为文件标识(卷名和文件名);
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件下载。

 

 

 所以说,tracker就像是中介一样的作用。

在集群中tracker可以配置反向代理,以及高可用,反向代理的目的:每一个tracker服务器,根据不同的组,找到组内成员(每一个成员对应一台服务器)

高可用目的:使用nginx+kealived,保存nginx高可用,统一虚拟ip,访问

存储服务器storage,配置Ngnix作用:从存储服务中,使用http方式来上传或下载文件的,所以需要配合使用,fastdfs-nginx-module_v1.16.tar.gz

 

 参考1:https://www.cnblogs.com/zengpeng/p/11557887.html

 参考2:https://www.cnblogs.com/zengpeng/p/11557900.html

 参考3:https://www.cnblogs.com/zengpeng/p/11557907.html

 

posted @ 2020-03-05 01:14  柠檬仔啊  阅读(253)  评论(0)    收藏  举报