FastDFS流程图

文章目录
  1. 1. FastDFS 执行流程
  2. 2. 上传机制
  3. 3. 下载机制

FastDFS 执行流程

FastDFS 服务端有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

  • Tracker Server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比 GFS 中的 Master 更为精简,不记录文件索引信息,占用的内存量很少。

  • Storage Server:存储服务器(又称存储节点或数据服务器),文件和文件属性(Meta Data)都保存到存储服务器上。Storage Server 直接利用 OS 的文件系统调用管理文件。

  • Client:客户端,作为业务请求的发起方,通过专有接口,使用 TCP/IP 协议与跟踪器服务器或存储节点进行数据交互。FastDFS 向使用者提供基本文件访问接口,如 upload、download、append、delete 等,以客户端库的方式提供给用户使用。

通过一张图来看一下 FastDFS 的运行机制:

FastDFS运行机制

Tracker 相当于 FastDFS 的大脑,不论是上传还是下载都是通过 Tracker 来分配资源;客户端一般可以使用 Ngnix 等静态服务器来调用或者做一部分的缓存;存储服务器内部分为卷(或者叫做组),卷与卷之间是平行的关系,可以根据资源的使用情况随时增加,卷内服务器文件相互同步备份,以达到容灾的目的。

上传机制

首先客户端请求 Tracker 服务获取到存储服务器的 IP 地址和端口,然后客户端根据返回的 IP 地址和端口号请求上传文件,存储服务器接收到请求后生产文件,并且将文件内容写入磁盘并返回给客户端 file_id、路径信息、文件名等信息,客户端保存相关信息上传完毕。

FastDFS上传机制

下载机制

客户端带上文件名信息请求 Tracker 服务获取到存储服务器的 IP 地址和端口,然后客户端根据返回的 IP 地址和端口号请求下载文件,存储服务器接收到请求后返回文件给客户端。

FastDFS下载机制