文件下载的原理如下图所示

FastDFS文件下载原理插图
  1. client询问tracker下载文件的storage,参数为文件标识(组名和文件名)
  2. tracker返回一台可用的storage
  3. client直接和storage通讯完成文件下载

由于storage有多个存储节点,存储节点间的文件同步是在后台异步进行的,所以有可能出现在读的时候,文件还没有同步到某些storage server上,为了尽量避免访问到这样的storage,tracker按照如下规则选择group内可读的storage:

  1. 该文件上传到的源storage – 由于源头的地址被编码在文件名中,只要源头storage存活,优先返回
  2. 文件创建时间戳==storage被同步到的时间戳 且(当前时间-文件创建时间戳) > 文件同步最大时间(如5分钟) – 文件创建后,认为经过最大同步时间后,肯定已经同步到其他storage了
  3. 文件创建时间戳 < storage被同步到的时间戳。 – 同步时间戳之前的文件确定已经同步了
  4. (当前时间-文件创建时间戳) > 同步延迟阀值(如一天)。 – 经过同步延迟阈值时间,认为文件肯定已经同步了

关于FastDFS相关的资料,关注公众号:程序新视界,回复“011”获得完整版PDF文档。



FastDFS文件下载原理插图1

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2020/07/31/fastdfs-download/