一、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. 多线程同步_Monitor

    多线程一直在学习和理解中...... Monitor类是多线程中用以实现同步的一种技术,主要是同一进程内多线程间的同步技术. Monitor类中有以下几个方法需要注意: Monitor.Enter(o ...

  2. Qt qss 使用

    1.在资源文件建立一个qss文件.如blue.qss 2. 调用 #include "mainwindow.h" #include <QApplication> #in ...

  3. 由于Windows和Linux行尾标识引起脚本无法运行的解决

    在所有的操作系统中,文本文件的结束或者换行都是有行尾符来标识的,C语言中经常使用\n作为换行,\r作为跳格TAB:实际上在计算机还没有真正出现之前,有种电传打字机的设备,每秒钟可以打印10个字符,但是 ...

  4. SQL Server 无法在服务器上访问指定的路径或文件解决方法

    SQL Server 无法在服务器上访问指定的路径或文件解决方法 在SQL Server附加数据库或备份数据库时出现:无法在服务器上访问指定的路径或文件. 请确保您具有必需的安全权限且该路径或文件存在 ...

  5. [转] Android Volley完全解析(一),初识Volley的基本用法

    版权声明:本文出自郭霖的博客,转载必须注明出处.   目录(?)[-] Volley简介 下载Volley StringRequest的用法 JsonRequest的用法   转载请注明出处:http ...

  6. Python 生产环境MySQL数据库增量备份脚本

    MySQL数据库常用的办法是通过MySQLdump导出sql进行备份,但是不适合数据量很大的数据库,速度,锁表是两个严重的问题.前面写了一遍文章介绍xtrabackup的热备工具,见 http://w ...

  7. ajax加载模块实时刷新的原理

    var loadMenu = function(data) {        var trs = template.render('menu-list-temp', {'list': data});  ...

  8. Hibernate双向一对多对象关系模型映射

    双向one-to-many 描述部门和岗位:一个部门有多个岗位 将单向的one-to-many 和many-to-one合并. 4.1双向的one-to-many数据库模型 create table ...

  9. 在VC中创建并调用DLL

    转自:http://express.ruanko.com/ruanko-express_45/technologyexchange6.html 一.DLL简介 1.什么是DLL? 动态链接库英文为DL ...

  10. Redis内存管理(一)

    Redis数据库的内存管理函数有关的文件为:zmalloc.h和zmalloc.c. Redis作者在编写内存管理模块时考虑到了查看系统内是否安装了TCMalloc或者Jemalloc模块,这两个是已 ...