FastDFS分布式文件存储

FastDFS

概念:

充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。搭建一套高性能的文件服务器集群提供文件的上传、下载等服务。

架构:

Tracker server 和 Storage  server,客户发送请求Tracker server 进行文件的上传、下载,通过Tracker server 调度最终由Storage  server完成上传和下载。

Tracker server 作用

负载均衡和调度,通过Tracker server 在文上传的时候可以根据一些策略找到Storage  server提供文件上传服务,可以将Tracker 称为追踪服务器或调度服务器

Storage  server作用

文件存储,客户端上传的文件最终存储在Storage  服务器,Storage  server没有实现自己的文件系统而是利用操作系统的文件来管理文件,可以将Storage  称为存储服务器。

客户端请求到跟踪服务器(Tracker server),跟踪服务器管理着文件存储服务器(Storage  server),Tracker server和 Storage  server可以都是集群。找到文件存储在哪个Storage  server里面,然后通过Tracker server返回给客户端,客户端将文件上传到对应的Storage  server,返回一个名称给客户端。

Django自带文件管理

浏览器通过后台管理页面请求Django服务器上传文件,默认存放在指定位置,存储在Django服务器上面,存储的容量受限制。通常情况下是将文件保存在文件存储服务器上面,我们使用的是FastFDS

Storage  server文件保存的时候名称是取hash值,即文件的指纹,通过文件,相同内容的文件只会存储一份。

优点

1、海量存储,存储容量扩展方便2、相同内容的文件只会存储一份,防止重复3、结合nginx提高网站提供图片的效率

文件上传流程

客户端发送请求到Tracker server服务器,Tracker server 查询可用的Storage  server,返回Storage  server 的ip和端口号,客户端直接访问ip和端口号将文件上传, Storage  server保存完文件之后会生成一个file id,然后把文件内容写到对应的磁盘上面,在将file id(即指纹)返回。

文件下载流程

客户端先发送请求到Tracker server ,Tracker server 根据需要下载的文件去查询文件在哪个Storage  server服务器上面,然后将Storage  server的ip和端口号返回给客户端,客户端直接找对应的Storage  server获取文件,Storage  server拿到文件后会将文件返回。

使用:

1、安装fastDFS

2、配置

1、配置Tracker server ​ 2、配置Storage  server

3、启动Tracker  Storage 

4、测试是否成功

5、安装nginx及fastdfs-nginx-module

项目应用流程

项目实际应用流程

你可能感兴趣的:(FastDFS分布式文件存储)