41

框架 | FastDFS 入门到应用

 5 years ago
source link: http://www.kofes.cn/2019/02/FastDFS.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

余庆老师在他的 Github 上介绍关于 FastDFS 开源项目的描述:FastDFS 是一个开源的高性能分布式文件系统 ( DFS )。 它的主要功能包括文件存储,文件同步和文件访问,以及高容量和负载平衡。

FastDFS 简单介绍

FastDFS 核心组件

  • Tracker Server :跟踪服务器,负责维持集群的信息;负责管理所有的 Storage Server 和 Group,每个 Storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
  • Storage server :存储服务器,以 Group 为单位进行组织,任何一个 Storage Server 都应该属于某个 Group;一个 Group 可含多个 Storage server;在同一个 Group 内部,各 Storage Server 的数据自行同步、备份。
  • Client :客户端,上传、下载数据的服务器,也就是我们自己的项目所部署在的服务器。

    核心组件的介绍参考了 [1]、[2] 的概念叙述。

FastDFS 组织架构

  • 结合组件的功能描述可知,FastDFS 的组织架构 $^{[2]}$ 如图 1-1 所示。

    raEVVrQ.jpg!web

    图 1-1 FastDFS 的组织架构

FastDFS 文件传输

  • 通过时序图,分析 FastDFS 文件上传、文件下载等操作的流程,如图 1-2 所示。

    neqeiaM.jpg!web

    图 1-2 FastDFS 文件上传、下载的时序图
  • 文件上传流程:

    • 1) Client 询问 Tracker,发送上传文件的请求;
    • 2) Tracker 返回可调用的 Storage ID: Port
    • 3) Client 直接与目标 Storage 通讯,完成文件上传;
    • 4) Storage 返回 文件ID ,文件ID 为 Group ID + FileName
  • 文件下载流程:
    文件ID
    Storage ID: Port
    文件内容
    

FastDFS 客户端

Java 客户端


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK