FastDFS分布式文件存储

文件系统的发展史

什么是文件系统

文件系统是用来管理和存储文件的

单机文件系统

把文件存储到本地磁盘中。但不同服务器间的数据不能进行共享。

网络文件系统

服务器间的文件可以通过网络进行数据共享。但两台服务器不能同时被访问修改,并且文件数据量的存储量有限

分布式文件存储系统

把大量文件分布到多台服务器上,通过分布式文件存储系统来进行管理

FastDFS

概念

一个轻量级开源的高性能分布式文件存储系统,解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。

架构

客户端

负责实现文件的上传和下载

服务器端

跟踪服务器:负责文件访问的调度和负载均衡(多台)

存储服务器:负责文件的存储,同步和备份

跟踪服务器通过ping-pang来判断存储服务器是否正常

每组的存储服务器相互备份且同组服务器的文件完全相同。如果要扩容就增加组而不要增加组内的服务器。

fastdfs文件的上传和下载

文件上传

客户端向跟踪服务器发送上传请求,跟踪服务器检查是否有可用的存储服务器,找到后选择一个合适的存储服务器进行存储,存储后存储服务器会给客户端返回文件存储路径,后客户端就可以根据这个路径找到这个文件。

文件下载

客户端发送请求给跟踪服务器,跟踪服务器查找到存储服务器地址返回给客户端,客户端拿到地址后去找到文件,存储服务器返回文件给客户端。

Nginx整合FastDFS

什么是Nginx

Nginx是一个反向代理服务器

代理

什么是代理

代理就是一个中介

正向代理

正向代理就是代理服务器代理了客户端

比如我们现在要通过谷歌访问外网是访问不到的,那么我们可以通过谷歌去访问一个代理服务器,在由这个代理服务器去访问外网,从而实现我们通过谷歌浏览外网信息。

反向代理

反向代理就是代理服务器代理了服务端

比如我们去租房,我们不需要直接去租房,可以通过找一个房屋中介,这个房屋中介有所有房子信息,从而租到我们想租的房子。

为什么要用Nginx整合FastDFS

我们在使用FastDFS部署一个分布式文件系统的时候,通过FastDFS的客户端API来进行文件的上传、下载、删除等操作。同时通过FastDFS的HTTP服务器来提供HTTP服务。但是FastDFS的HTTP服务较为简单,无法提供负载均衡等高性能的服务,所以FastDFS的开发者余庆为我们提供了Nginx上使用的FastDFS模块(fastdfs-nginx-module)。其使用非常简单。
FastDFS通过Tracker服务器,将文件放在Storage服务器存储,但是同组之间的服务器需要复制文件,有延迟的问题.假设Tracker服务器将文件上传到了192.168.1.80,文件ID已经返回客户端,这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误。这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。

上一篇:常用的分布式文件系统


下一篇:PHP封装FastDFS操作类