一、前言
在前一段工作的时间中,小编接触了文件系统——FastDFS,它是一个用C语言编写的开源的分布式文件系统。下面就对他进行简单的介绍
二、什么是FastDFS?
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
在前文中小编给大家分享了Nginx,既然做了Nginx的负载均衡,就有了多个服务器,但是这多个服务器上的信息不是同步的,所以当我们遇到这种情况的时候,就会发现,用户把图片存储到了tomcat1上面,然而访问的时候不是tomcat1,就会访问不到。
fastDFS就 是一个单独的文件系统,上传的图片可以存储到图片服务器,当要请求图片的时候,直接在图片服务器请求就可以了,这样就解决了tomcat服务群的资料同步的问题。
三、FastDFS的几个组成部分
首先大家看一下官方的fastDFS集群的架构图:
在这个图中,包含了Client、Tracker群、Storage群。
Client,就不用更多解释了,就是客户端。
Tracker,追踪者,用于做负载均衡和调度。
Storage,贮存,用户文件存储。
这里要提一下的是:tracker之间没有主从之分,使用轮寻的方式进行访问,如果请求的tracker无法提供服务则换另一个。storager之间也没有主从之分。
文件上传流程:
文件下载流程:
上传文件的文件名
客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。
组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。
四、小结
原来也使用过文件系统ftp服务器,现在接触的更加的强大了,使用更加的方便了。fastDFS会更好的为系统提供服务,加油!
下一篇博客将向大家带来如何搭建一台FastDFS的单机服务器。敬请期待。