一、FastDFS解决的问题
在现在互联网项目下,对静态资源的存储提出了很高要求:高并发会在服务器端产生大量的静态资源文件,影响服务器的响应速度,并且在服务器集群部署的情况下,为了保证集群服务器数据的一致性必须同步所有服务器数据,十分的消耗IO资源。因此产生了将所有静态资源单独提取出来的处理方式,FastDFS分布式文件系统,提供了分布式部署文件服务器的解决方案。
二、架构和处理流程
从架构上看主要分为三个部分
(1)client客户端
客户端可以是应用服务器也可以是客户浏览器直接请求
(2)tracker控制服务器
tracker主要负责分发来自客户端的读写请求,会定时查询storage存储服务的各种信息(包括但不限于剩余存储容量等)
(3)storage存储服务器
真正用于存储数据的服务器,fdfs的存储方式是使用了虚拟磁盘技术,所有存储在storage上的数据都会生成对应的虚拟磁盘路径,用户可以直接通过访问虚拟磁盘路径获取文件。storage的存储为分卷集群存储,每卷都为多台服务器备份。保证了数据的安全同时分卷存储也提高了IO性能。
三、FastDFS与nginx整合使用
FastDFS本身只是一个文件系统,tracker和storage服务器之间也是使用的tcp/ip协议进行通信,为了通过浏览器访问fastDFS中的静态资源必须通过Http服务器转发,所以用到了Nginx作为http服务器转发请求。