FastDFS文件下载原理
文件下载的原理如下图所示
- client询问tracker下载文件的storage,参数为文件标识(组名和文件名)
- tracker返回一台可用的storage
- client直接和storage通讯完成文件下载
由于storage有多个存储节点,存储节点间的文件同步是在后台异步进行的,所以有可能出现在读的时候,文件还没有同步到某些storage server上,为了尽量避免访问到这样的storage,tracker按照如下规则选择group内可读的storage:
- 该文件上传到的源storage – 由于源头的地址被编码在文件名中,只要源头storage存活,优先返回
- 文件创建时间戳==storage被同步到的时间戳 且(当前时间-文件创建时间戳) > 文件同步最大时间(如5分钟) – 文件创建后,认为经过最大同步时间后,肯定已经同步到其他storage了
- 文件创建时间戳 < storage被同步到的时间戳。 – 同步时间戳之前的文件确定已经同步了
- (当前时间-文件创建时间戳) > 同步延迟阀值(如一天)。 – 经过同步延迟阈值时间,认为文件肯定已经同步了
关于FastDFS相关的资料,关注公众号:程序新视界,回复“011”获得完整版PDF文档。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接