FastDFS上传图片

@FastDFS

分布式文件存储

FastDFS上传图片_第1张图片

FastDFS上传图片_第2张图片
分布式文件系统优点:
1:解决了传统方式的单点故障问题,如果某一个节点出现故障还有其他的节点可以用来读取和写入文件。
2:可以提供数据备份,避免因磁盘损坏导致的文件丢失。
3:提供扩容的机制,无限增加文件存放的空间上限。

1.FastDFS介绍

1.1图片服务器介绍

要实现图片上传功能,需要有一个图片服务器。图片服务器的特点:
1.存储空间可扩展
2.提供统一的访问方式
3.访问效率高
原来使用Tomcat配置虚拟路径的方式不能满足需求。

企业中的图片服务器有两个方案:

  1. 使用FastDFS分布式文件系统。
  2. 使用Nginx服务器。

1.2 什么是FastDFS

FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、横向扩展等机制,并注重高可用、高性能等指标,使用FastDFS很容易(几乎可以做到零配置)搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

1.3 FastDFS架构

FastDFS文件系统由两大部分构成:客户端和服务端
客户端通常指我们的程序,比如我们的Java程序去连接FastDFS、操作FastDFS,那我们的Java程序句是一个客户端。
服务端由两部分组成:跟踪器(tracker)、存储节点(storage)
跟踪器(tracker): 主要做调度工作,在内存中记录集群中存储节点(storage)的状态信息,是前端client和后端存储节点storage的枢纽。因为相关信息全部在内存中,Tracker server的性能非常高
存储节点(storage): 用于存储文件和文件属性(meta data)都保存到存储服务器磁盘上,完成文件管理的所有功能:文件存储、文件同步和提供文件访问等

如下图:

FastDFS上传图片_第3张图片

1.4 文件上传流程

文件上传流程如下图(时序图):
FastDFS上传图片_第4张图片
客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。

1.5 文件下载流程

FastDFS上传图片_第5张图片

tracker根据请求的文件路径即文件ID 来快速定义文件。
比如请求下边的文件:
在这里插入图片描述

1.通过组名tracker能够很快的定位到客户端需要访问的存储服务器组是group1,并选择合适的存储服务器提供客户端访问。
2.存储服务器根据“文件存储虚拟磁盘路径”和“数据文件两级目录”可以很快定位到文件所在目录,并根据文件名找到客户端需要访问的文件

你可能感兴趣的:(FastDFS上传图片)