一、fastdfs是什么
fastdfs是一款开源的轻量级的分布式文件系统
二、fastdfs能解决什么问题
分布式场景下的文件上传下载读取问题。分布式架构下的服务为了抗住高并发都会存在集群。但是在有集群(比如现在有服务器a、b、c)的情况下,如果用户本次登录被负载均衡调到服务器a了,此时他在服务器上上传了一张图片,然后他注销了。下一次登录的时候他又被负载均衡到另一台服务器b了,此时他想查看他上次上传的图片就看不到了。这就产生了数据不同步的问题,集群的存在带来了数据不同步的问题。
fastdfs可以解决这个问题。它由client,跟踪服务器tracker和存储服务器storage三部分构成。
拿分布式架构下,用户上传图片的情景举例。fastdfs的工作过程是这样的:
- 用户向服务端发起一个上传图片的请求
- 服务端接收到用户的请求,并作为client向fastdfs的跟踪服务器tracker发送上传请求。
- tracker接收到client的请求,并根据一定的负载均衡策略,向client指定一个存储的地址,指定图片放到哪个组进行存储,并返回给服务端一个包含图片存储地址信息的对象。
- (补充)每个组里都有两个storage储存服务器,一个是主storage,另外一个是备份的storage。图片被存到主storage后会被拷贝一份带到备份storage中。
但是这个拷贝的过程有可能会出现文件损坏,但坑爹的是fastfds的底层并没有一个针对文件同步时做校验的机制,所以为了确保你自己做的系统的可用性,
三、fastDFS一般搭配Nginx使用