FastDFS学习笔记

一、FastDFS介绍

FastDFS是以C语言开发的开源的轻量级分布式文件系统,可对文件进行管理,主要功能有:文件存储、文件同步、文件上传与下载、特别适合以文件为载体的在线服务,如图片网站、视频网站等。

1.1、什么是分布式文件系统

1、基于客户端/服务器的文件存储系统
2、对等特性:允许一些系统扮演客户端和服务器的双重角色,可供多个用户访问的服务器,如用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说,就像使用本地驱动器一样。

1.2、FastDFS的构成

FastDFS由跟踪服务器tracker server, 存储服务器storage server,客户端client组成。

1、Tracker server
tracker server负责接收客户端请求,选择合适的组合storage server, tracker server与storage server之间也会用心跳机制来检测对方是否活着。

tracker需要管理的信息,都放在内存中,并且里面所有的tracker都是对等的,可水平扩展。当客户端访问集群时,会随机分配一个tracker。

2、storage server
storage server,用于实际存储数据,分成若干个组(group),实际tracker就是管理storage中的组,而组内集群中则存储数据,group可以隔离不同应用的数据。

3、client
上传下载数据的服务器,每个client服务器都需要安装nginx。

FastDFS学习笔记_第1张图片

1.3、上传文件

上传数据的时候,storage会将他所挂载的所有数据存储目录的底下创建2级子目录,每以及256个,总共65536个,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据作为本地文件存储到该目录中。
FastDFS学习笔记_第2张图片

1.4、下载文件

当client向tracker发起下载请求时,并不会直接下载,而是先查询storage server(检测同步状态),返回storage server的IP和port, 然后client会呆着文件信息(组名、路径、文件名),去访问相关的storage, 再下载文件。

FastDFS学习笔记_第3张图片

你可能感兴趣的:(中间件)