一、FastDFS概述:

FastDFS是一个开源的轻量级分布式文件系统,他对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、下载)等,解决了大容量存储和负载均衡的问题,高度追求高性能和扩展性。特别适合以文件为载体的在线服务,如相册万盏、视频网站等等。

FastDFS是由纯C语言实现,支持Linux,FreeBSD的NUIX系统。类google FS,不是通用的文件系统,只能够同故宫转悠API进行访问,目前提供了C,JavaPHP API。另外,FastDFS可以看作是基于文件的key-Value存储系统,也可以称之为 分布式文件存储服务。

二、FastDFS提供的功能:

1、upload 上传文件

2、upload_appender:上传appender文件,后续可已对其进行append操作

3、upload_slave:上传从文件

4、download 下载文件

5、delete 删除文件

6、append:在已有文件后追加内容

7、set_metadata:设置文件附加属性

8、get_metadata:获取文件附加属性

三、FastDFS的特点:

1、分组存储、灵活简洁

2、对等结构、不存在单点

3、文件ID有FastDFS生成,作为文件访问凭证。FastDFS不需要传统的name server

4、和流行的web server无缝连接,FastDFS已提供apache和nginx扩展模块

5、大、中、小文件均可以很好支持,支持海量小文件存储

6、支持多块磁盘,支持但盘数据恢复

7、支持相同文件内容只保存一份,节省存储空间

8、存储服务器上可以保存文件附加属性

9、下载文件支持多线程方式、支持断点续传

四、FastDFS架构解读:

1、只有两个角色,tracker server和storage server,不需要存储文件索引信息

2、所有服务器都是对等的,不存在Master-Slave关系

3、存储服务器采用分组方式,同组内存储服务器上的文件完全相同

4、不同组的storage server之间不会相互通信

5、不同组的storage server之间不会相互通信

6、有storage server主动向tracker server报告状态信息,tracker server 之间通常不会相互通信

五、FastDFS如何解决同步延迟问题?

1、storage生成的文件名中,包含源头storage IP地址和文件创建的时间戳

2、源头storage定时向tracker报告同步情况,包括向目标服务器同步到的文件时间戳

3、tracker收到storage的同步报告后,找出该组内每台storage被同步到的时间戳(取最小值),作为storage属性保存到内存中

六、FastDFS扩展模块要点:

1、使用扩展模块来解决文件同步延迟问题

2、对每台storage server上部署web server,直接对外提供HTTP服务

3、tracker server上不需要部署web server

4、如果请求文件在当前storage上不存在,通过文件ID反解出源storage,直接请求源storage

5、目前已提供apache和nginx扩展模块

6、FastDFS扩展模块不依赖于FastDFS server,可以独立存在

七、FastDFS扩展模块特性:

1、仅支持HTTP HEAD和GET

2、支持token方式的防盗链(缺省是关闭的)

-ts:生成token的时间(unix时间戳)

-token:32未得token字符串(md5签名)

3、支持制定保存的缺省文件名,URL参数名为filename

4、支持断点续传

八、FastDFS工作原理

        参见博客:http://blog.csdn.net/liweizhong193516/article/details/52556526,中专门讲解FastDFS的工作原理,分析上传下载方式解析。

FastDFS简介的更多相关文章

  1. FastDFS简介和架构图(内容来自于阅读fastdfs官方文档的总结)

    一.FastDFS简介 1. FastDFS是一个轻量级的开源分布式文件系统 2. FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 3. FastDFS实现了软件 ...

  2. 01 . 分布式存储之FastDFS简介及部署

    分布式存储简介 现代的互联网已经进入大数据时代,每天都有数以万计的数据产生,这些数据的规模轻轻松松地可以达到几P的级别,传统的的单机存储早已捉襟见肘,根本无法满足大数据对存储系统的要求.这时,各种分布 ...

  3. FastDFS 简介

    FastDFS开源的分布式文件系统,功能包括:文件存储,文件同步,文件访问(文件上传,文件下载等),解决了大容量存储和负载均衡的问题,特别适合以文件为载体的在线服务,如服务网站,视频网站等 FastD ...

  4. FastDFS简介和安装

    FastDFS是一个轻量级的开源分布式文件系统 FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 FastDFS实现了软件方式的RAID,可以使用廉价的IDE硬盘进 ...

  5. 分布式文件系统FastDFS简介、搭建、与SpringBoot整合实现图片上传

    之前大学时搭建过一个FastDFS的图片服务器,当时只是抱着好奇的态度搭着玩一下,当时搭建采用了一台虚拟机,tracker和storage服务在一台机器上放着,最近翻之前的博客突然想着在两台机器上搭建 ...

  6. FastDFS安装和简介详细总结

    1.fastDFS简介 1 FastDFS是用c语言编写的一款开源的分布式文件系统. 2 FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标, 3 ...

  7. FASTDFS调研报告(V1.0)

    之前的文章,现在放出来,以供参阅. 一.fastdfs简介 FastDFS是一个轻量级的开源分布式文件系统 FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡 Fas ...

  8. FastDFS实现文件上传下载实战

    正好,淘淘商城讲这一块的时候,我又想起来当时老徐让我写过一个关于实现FastDFS实现文件上传下载的使用文档,当时结合我们的ITOO的视频系统和毕业论文系统,整理了一下,有根据网上查到的知识,总结了一 ...

  9. 01.FastDFS的安装部署

    1.FastDFS简介 (1)FastDFS的功能介绍 FastDFS是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负 ...

随机推荐

  1. 使用Java中的IO流,把A文件里的内容输入到B文件中

    我们先创建两个文本文件,out.txt和in.txt,在out.txt中输入"Hello World",然后使用FileInputStream把字符串读取出来,再使用FileOut ...

  2. Java for LeetCode 217 Contains Duplicate

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  3. 【Python】range和xrange区别

    转自:http://www.cnblogs.com/zhangjing0502/archive/2012/05/16/2503880.html range    函数说明:range([start,] ...

  4. 【linux】linux脚本中#!/bin/sh的含义

    来源:百度知道 #! /bin/sh 是指此脚本使用,/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径.

  5. 分享类shareSDK

    1.新浪微博分享时需要注意: [A] 应用信息->基本信息->应用地址 [B] 应用信息->高级信息->OAuth2.0 授权设置 //当使用新浪微博客户端分享的时候需要按照下 ...

  6. NYOJ题目770仿射密码

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAs4AAAIUCAIAAACFKz0yAAAgAElEQVR4nO3dPXLruLaG4TsJ5RqIYw

  7. drozer unknown module处理办法

    将目录切换到drozer安装目录,然后在执行:

  8. sys.sysprocesses视图的使用小结

    Sys.SysProcesses 系统表是一个很重要的系统视图,主要用来定位与解决Sql Server的阻塞和死锁包含正在 SQL Server 实例上运行的进程的相关信息.这些进程可以是客户端进程或 ...

  9. ASP.NET MVC Json()处理大数据异常解决方法,字符串的长度超过了为 maxJsonLength

    问题: 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错.字符串的长度超过了为 maxJsonLength 属性设置的值. <system.web.exten ...

  10. php提示 Notice: Use of undefined constant name - assumed

    我们知道php在数组中写变量有二几种方法,我们出现这种提示就是你写成了[name]这种所以会有Notice: Use of undefined constant name - assumed name ...