zoukankan      html  css  js  c++  java
  • FastDFS简介

    一、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的工作原理,分析上传下载方式解析。
  • 相关阅读:
    git 从远程仓库指定分支克隆代码到本地
    vue路由懒加载
    ES6中拓展运算符 ...
    Mysql 安装-windows X64
    mysql-Federated存储方式,远程表,相当于sql server的linked server
    优化临时表使用,SQL语句性能提升100倍
    MySQL行锁深入研究
    mysql 队列 实现并发读
    mysql 常用sql
    mysql分表的3种方法
  • 原文地址:https://www.cnblogs.com/DoubleEggs/p/6083460.html
Copyright © 2011-2022 走看看