二、fastDFS原理
FastDFS 是余庆老师开发的一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
- Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的storage server和group,每个storage在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。多个Tracker之间是对等关系,不存在单点故障。
- Storage Server: 存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,组内的storage server上的数据互为备份。
- 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

浙公网安备 33010602011771号