一、什么是FastDFS?

DFS(distributed file system):分布式文件系统。

FastDFS是一种开源的轻量级分布式服务器,用来解决大容量存储的问题,并充分考虑了冗余备份,负载均衡,线性扩容等机制,注重高可用、高性能等指标。特别适合中小文件,对以文件为载体的在线服务提供了非常好的解决方案。

主要功能:文件存储,文件同步,文件访问(文件上传、文件下载)等。

二、FastDFS由什么组成?

FastDFS由跟踪服务器(TrackerServer)、存储服务器(Storage Server)和客户机(Client)构成。

跟踪服务器 TrackerServer:

主要起到调度工作,起到均衡作用,负责管理所有的Storage Server 和 Group ,每个Storage 在启动之后会自动连接Tracker ,告知自己所署的Group的信息,并保持周期性心跳,Tranker 会根据Storger的心跳信息,建立Group -> Storage Serverlist 【因为一个Group 可以由多个StorageServer构成】,由于Storage会保持周期性的心跳,所以Tracker 需要管理的元信息就很少,会全部存储在内存中,本身并不需要持久化任何数据,这样的话,就使得Tracker非常容易扩展,仅仅增加Tracker 即可扩展为 Tracker Cluster 集群服务。Cluster里的每个Tracker 之间是完全对等的,所有的Tracker都接收Storage的心跳信息,生成元数据信息来提供读写服务。

存储服务器 StorageServer:

主要提供容量和备份服务,以Group为单位,每个Group 内有多个Storage Server,数据互相备份,当一个Storage Server损坏时,可以通过其他的Storage Server进行恢复。

以Group 为单位组织存储能方便的进行应用隔离、负载均衡、副本数定制【副本数即为Storage Server 的数量】,比如将不同的应用数据存储到不同的Group就能实现简单的应用数据隔离,同时可以根据应用不同的访问特性来分配不同的Group,做到负载均衡。

客户端 Client:

此时,这个客户端并不是用户所在的客户端,而是部署了我们项目的服务器,每个客户端(搭载项目的服务器)都需要安装Nginx,客户端(搭载项目的服务器)和文件存储服务器之间的数据交流也是服务器之间的交流。

三、FastDFS工作流程

Ⅰ、上传

0:Storage Server会定时向Tracker Server 发送自己的Group以及文件夹信息。使得Tracker Server 会保留最近的元数据。

1:普通用户向Client(服务器)发送请求。

2:Client(服务器)会向TrackerServer发送请求存储。

3:TrackerServer 会向Client反馈一个不是太忙的Storage Server 信息。

4:Client(服务器)收到消息,请求StorageServer。

5:Storage Server存储数据,并反馈给Client一个id,这个id也就是存储文件的路径。

(路径分为组名、文件夹、文件名和后缀,也就是后面用来访问此文件的方式)

模拟对话:

StorageServer:Tracker老哥,我还活着,你要记得我啊!

用户1:我要上传个电脑啊,服务器!(哇,有点过分了啊!)

Client(服务器):好勒,东西给我,我帮你把东西存起来。

Client(服务器):TrackerServer,我要存一台电脑,给我找一个仓库。

TrackerServer:老铁等一下,我给你找一个地大一点的仓库,要不就去A小区B栋302仓库吧。

Client(服务器):嘿,StorageServer,呐,这个是我的东西。

StorageServer:OJBK,东西放好了,给你个编号(9827),以后凭着编号来找你的东西啊!

Client(服务器):把A小区/B栋/302/9527记录到账本上。

A小区:就是对应的GroupA

B栋:就是对应的Storage Server

302:就是Storage Server下的文件夹

9527:就是文件名

电脑:就是文件后缀名

账本:就是数据库。

由于是项目需要FastDFS,所以学习了一下,现在写了个总结,如果有同样在学的,可以稍加参考。由于时间匆忙,也参考了一下别人的文章,和自己的稍加整合,若有失误,还请指出。

FastDFS_简介和原理相关推荐

  1. DL之CNN:卷积神经网络算法简介之原理简介——CNN网络的3D可视化(LeNet-5为例可视化)

    DL之CNN:卷积神经网络算法简介之原理简介--CNN网络的3D可视化(LeNet-5为例可视化) CNN网络的3D可视化 3D可视化地址:http://scs.ryerson.ca/~aharley ...

  2. DL之Perceptron:Perceptron感知器(感知机/多层感知机/人工神经元)的简介、原理、案例应用(相关配图)之详细攻略

    DL之Perceptron:Perceptron感知器(感知机/多层感知机/人工神经元)的简介.原理.案例应用(相关配图)之详细攻略 目录 Perceptron的简介.原理 多层感知机 实现代码 案例 ...

  3. DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图)、七大层级结构(动态图详解卷积/池化+方块法理解卷积运算)、CNN各层作用及其可视化等之详细攻略

    DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图).七大层级结构(动态图详解卷积/池化+方块法理解卷积运算).CNN各层作用及其可视化等之详细攻略 目录 CNN 的层级结构及相关概念 ...

  4. Mybatis简介与原理

    转载自  Mybatis简介与原理 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到 ...

  5. linux中ftp的工作原理,Linux系统学习 十二、VSFTP服务—简介与原理

    1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...

  6. IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解

    IoT物联网嵌入式设备中30种常见传感器模块简介及原理讲解 0.前言 一.光学传感器模块: 1. 光敏传感器模块: 2. 红外避障模块 3. 循迹传感器模块 4. U型光电传感器模块 5. 红外接收模 ...

  7. JDBC简介及原理和使用介绍

    JDBC简介及原理和使用介绍 JDBC简介 jdbc概述 ​ Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据 ...

  8. WebShell箱子简介与原理

    今天继续给大家介绍渗透测试相关知识,本文主要内容是WebShell箱子简介与原理. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严 ...

  9. 简述什么是图灵机_图灵机简介和原理分析

    图灵机简介和原理分析 摘要 : 1936 年, 阿兰·图灵提出了一种抽象的计算模型 -- 图 灵机 (Turing Machine) .图灵机是指一个抽象的机器,可被视作任 意解决有限数学逻辑过程的机 ...

  10. 大数据权限管理组件Apache Ranger简介和原理

    大数据权限管理组件Apache Ranger简介和原理 一.什么是Ranger 二.Ranger的管理页面和Ranger支持的框架 三.Ranger的目标 四.Ranger架构 五.Ranger的工作 ...

最新文章

  1. 区块链教程Fabric1.0源代码gRPC(Fabric中注册的gRPC Service)一
  2. MetaPhlAn 2:宏基因组进化分析
  3. Karp 21个规约问题 笔记 (1~13个规约问题)
  4. 机器学习算法基础——数据降维
  5. 广发证券携手神策数据 多维分析满足复杂业务需求
  6. step3 . day6数据结构之非线性表 满二叉树和不完全二叉树
  7. php数据库创建文件失败怎么回事,安装zblogPHP提示“创建c_option.php失败”解决方法...
  8. Facebook升级到MySQL 8.0付出的代价
  9. (软件工程复习核心重点)第一章软件工程概论习题
  10. php 后期绑定,PHP __DIR__评估运行时(后期绑定)?
  11. mysql查看现在使用的引擎_如何查看MySQL的当前存储引擎?
  12. 《Effective Java》读书笔记三(类和接口)
  13. VS2013+OSG3.4.0+Qt5.5.1编译(超详)
  14. jad158g class文件转java文件
  15. IBM Cloud Satellite在Tencent Cloud上的部署--Part1准备
  16. BAT齐聚阿里安全-ASRC生态大会:呼吁联合共建网络安全白色产业链
  17. 华为系统wifi服务器失败是怎么回事儿,wifi 用云服务器异常
  18. win10计算机睡眠 隔几分钟就唤醒,win10系统点击睡眠后又迅速自动唤醒怎么办
  19. CH341A及XTW 2两种SPI FLASH烧录器的硬件使用说明_20220920【可用于升级主板BIOS】
  20. Ubuntu查看Cuda是否全部安装成功

热门文章

  1. 程序员校招社招简历模板分享和硬技能
  2. 政府大数据资源中心建设总体方案 PPT
  3. xampp中mysql使用教程_XAMPP的安装及使用教程
  4. 先验概率、后验概率、贝叶斯公式的通俗解释
  5. magisk下载里显示没有模块_magisk框架
  6. Java单例模式简单代码
  7. html js手册chm,W3C Javascript CHM参考手册离线版
  8. 联想r720安装固态_联想LenovoR720游戏笔记本如何安装固态硬盘
  9. iconpath 微信小程序_微信小程序 底部导航栏
  10. AD15怎么导入图片做丝印 或者做 LOGO