前言

环境:Centos7.9

什么是FastDFS

FastDFS 是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和提交均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等 。FastDFS 为互联网专业定制,充分考虑了统计数据、负载均衡、扩大容容等,指标并适当高准、合适等。使用FastDFS很容易建立起自己的文件服务器,提供文件、下载等服务。

FastDFS的3个角色

1 )客户端

2 ) tracker追踪服务器

3 )存储存储服务器

原理步骤:客户端请求----追踪服务器----给客户端分配一个组----最终客户端将数据写入组中。

客户端:Client,客户端,主要是上传下载文件数据,包括我们部署的应用服务器或浏览器等。

跟踪服务器:tracker server,跟踪服务器主要负责调度工作,起到了负载均衡的效果,负责管理所有的storage server 和group,每个storage在启动后都会链接Tracker,storage server会定期的向tracker server发送自己的状态信息,如告知自己所属的group等信息,并保持周期性心跳,Tracker是连接客户端与组和存储枢纽,Tracker server也可以时多台的、集群的。

存储服务器:storage server,存储服务器负责存储数据和备份,存储服务器以group为单位,每个组又可以又多个storage server,组内的storage server数据互为备份。

以上,tracker server就起到了负载均衡的作用,storage server由于同一个组内的server互为备份,所以storage server就起到了数据冗余备份的作用。

FastDFS上传机制


如上图,当tracker收到客户端的上传文件的请求时,tracker会去storage查询可用的group,并返回给客户端storage的IP和端口,即group等信息,客户端向storage发送写文件请求,storage将会分配一个数据目录,然后为文件生成一个file_id,存储路径,文件名并存储文件,storage返回file_id、路径和文件给客户端。

FastDFS下载机制

FastDFS文件同步机制

写文件时,客户端将文件写至group内的一个storage server即认为写入成功,storage server写完后将由后台线程将文件同步到group内的其他storage server,实现原理是:每个storage 写文件后悔同时写一份binlog,binlog不包含数据,只包含文件名等元数据,这份binlog用于后台同步,storage 会记录group内其他的storage 同步进度,一遍重启后能衔接上次的同步进度继续同步,进度以时间戳的方式记录,所以最好保证集群内的server时间一致。

FastDFS简单介绍相关推荐

  1. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

  2. 2021年大数据ELK(十八):Beats 简单介绍和FileBeat工作原理

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Beats 简单介绍和FileBeat工作原理 一.Beats 二.FileB ...

  3. 2021年大数据ELK(十五):Elasticsearch SQL简单介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Elasticsearch SQL简单介绍 一.SQL与Elasticsear ...

  4. 2021年大数据ELK(二):Elasticsearch简单介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 一.Elasticsearch简介 1.介绍 2.创始人 二.E ...

  5. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  6. 简单介绍一下R中的几种统计分布及常用模型

    统计学上分布有很多,在R中基本都有描述.因能力有限,我们就挑选几个常用的.比较重要的简单介绍一下每种分布的定义,公式,以及在R中的展示. 统计分布每一种分布有四个函数:d――density(密度函数) ...

  7. LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍

    LVS(Linux Virtual Server)三种负载均衡模型和十种调度的简单介绍 LVS (Linux Virtual Server) LVS(Linux Virtual Server)其实就是 ...

  8. dubbo学习过程、使用经验分享及实现原理简单介绍

    一.前言 部门去年年中开始各种改造,第一步是模块服务化,这边初选dubbo试用在一些非重要模块上,慢慢引入到一些稍微重要的功能上,半年时间,学习过程及线上使用遇到的些问题在此总结下. 整理这篇文章差不 ...

  9. iOS开发UI篇—UIWindow简单介绍

    iOS开发UI篇-UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...

  10. django中使用celery简单介绍

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 本章节我们重点在于实现,如何存储任务的结果. 我们将任务函数改为: from celery_demo.celery im ...

最新文章

  1. 涉密计算机用户账号设置审批表,北京邮电大学涉密计算机配置审批表.PDF
  2. 独家福利 | 科大讯飞全球1024开发者节限时免费门票!
  3. 正压防爆气体分析系统
  4. 祝大家元宵节快乐,吃好喝好哦~~
  5. asp.net学习历程。
  6. 后台开发人员面试内容——操作系统(一)
  7. Git 命令大全整理
  8. 【最小生成树】水箱(P5952)
  9. Win32ASM-进程学习【1】
  10. 电脑同时安装python2和3_一台电脑上同时安装python2和python3
  11. php int 设置超时,php如何设置超时时间
  12. 面试问php学得怎么样,php面试常问的问题及回答
  13. Logistic逻辑回归用初等数学解读逻辑回归
  14. c++求数组中出现频率最高的数
  15. r5处理器_买完笔记本特别的卡?那是因为你买笔记本之前,处理器没选对
  16. 关于PPC软件的开发库
  17. 系统架构设计-项目管理
  18. 平衡小车从原理到实践
  19. Linux下压缩文件夹
  20. java画图曲线_绘图(直线和曲线)

热门文章

  1. codeforces 1041A Heist
  2. Hadoop整理四(Hadoop分布式计算框架MapReduce)
  3. 基于stm32CubeMX和keil5的stm32f103学习编程
  4. 【C++】指针的引用及面向对象
  5. angularJs模版注入的两种方式
  6. SQL Server 2012 Express LocalDB 的作用
  7. 《Algorithms 4th Edition》读书笔记——2.4 优先队列(priority queue)-Ⅵ
  8. 为什么要有环回路由(zz)
  9. Windows Phone 7 异步编程模型
  10. 使用WindowsHooks库制作和使用全局钩子