FastDFS【FastDFS概述(简介、核心概念 、上传机制 、下载机制)】(一)-全面详解(学习总结---从入门到深化)

news2025/1/9 16:52:25

 

目录

为什么要使用分布式文件系统

FastDFS概述_简介

FastDFS概述_核心概念 

FastDFS概述_上传机制 

 FastDFS概述_下载机制


 

为什么要使用分布式文件系统

单机时代

初创时期由于时间紧迫,在各种资源有限的情况下,通常就直接在 项目目录下建立静态文件夹,用于用户存放项目中的文件资源。如 果按不同类型再细分,可以在项目目录下再建立不同的子目录来区 分。例如: resources\static\file 、 resources\static\img 等。 

 

注意:

优点:便利,使用方便。

缺点:文件越多存放越混乱。 

独立文件服务器 

随着公司业务不断发展,将代码和文件放在同一服务器的弊端就会 越来越明显。为了解决上面的问题引入独立图片服务器,

流程:

项目上传文件时,首先通过ftp或者ssh将文件上传到图片服务器 的某个目录下,再通过Ngnix或者Apache来访问此目录下的文件,返回一个独立域名的图片URL地址,前端使用文件时就通过 这个URL地址读取。 

分布式文件系统 

业务继续发展,单台服务器存储和响应也很快到达了瓶颈,新的业务需要文件访问具有高响应性、高可用性来支持系统。

优点:

  • 扩展能力: 毫无疑问,扩展能力是一个分布式文件系统最重要的特点;
  • 高可用性: 在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据 的完整和一致性;
  • 弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要 中断系统运行。

缺点:

系统复杂度稍高,需要更多服务器 

实时学习反馈

1.下列属于独立文件服务器缺点是___。

A 容灾

B 单点故障问题

C 垂直扩展性稍差

D 以上都是

2. 下列属于分布式文件系统缺点的是____。

A 扩展能力强

B 高可用性

C 弹性存储

D 系统复杂度稍高 

FastDFS概述_简介

FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务,如相册网站、视频网站等 等。 

FastDFS特性:

  • 文件不分块存储,上传的文件和OS文件系统中的文件一一对应
  • 支持相同内容的文件只保存一份,节约磁盘空间
  • 下载文件支持HTTP协议,可以使用内置Web Server,也可以和其他Web Server配合使用
  • 支持在线扩容
  • 支持主从文件 

分布式文件服务提供商

1、阿里的OSS

2、七牛云存储

3、百度云储存 

实时学习反馈

1.FastDFS是一个开源的轻量级____。

A Web平台

B 文件系统

C 分布式文件系统

D 代码托管平台

2. FastDFS分布式文件系统特别适合存储____文件。

A 小文件

B 大文件

C 中小型

D 以上都是错误

FastDFS概述_核心概念 

 FastDFS服务端有三个角色:跟踪服务器(tracker)、存储服务器 (storage)和客户端(client)。

 tracker

跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录 集群中所有存储组和存储服务器的状态信息,是客户端和数据服务 器交互的枢纽。

 storage

存储服务器(又称:存储节点或数据服务器),文件和文件属性 (meta data)都保存到存储服务器上。Storage server直接利用 OS的文件系统调用管理文件。

 client

客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议 与跟踪器服务器或存储节点进行数据交互。FastDFS向使用者提供 基本文件访问接口,比如upload、download、append、delete 等,以客户端库的方式提供给用户使用。

 group

组, 也可称为卷。 同组内服务器上的文件是完全相同的 ,同一组 内的storage server之间是对等的, 文件上传、 删除等操作可以在 任意一台storage server上进行 。

 

流程: Tracker相当于FastDFS的大脑,不论是上传还是下载都是通过 tracker来分配资源;客户端一般可以使用Ngnix等静态服务器 来调用或者做一部分的缓存;存储服务器内部分为卷(或者叫 做组),卷于卷之间是平行的关系,可以根据资源的使用情况 随时增加,卷内服务器文件相互同步备份,以达到容灾的目 的。 

实时学习反馈

1.FastDFS的大脑是___。

A Tracker

B storage

C group

D client 

FastDFS概述_上传机制 

首先客户端请求Tracker服务获取到存储服务器的ip地址和端口,然 后客户端根据返回的IP地址和端口号请求上传文件,存储服务器接收到请求后生产文件,并且将文件内容写入磁盘并返回给客户端 file_id、路径信息、文件名等信息,客户端保存相关信息上传完 毕。 

 

内部机制如下

1、选择Tracker server

当集群中不止一个Tracker server时,由于Tracker之间是完全对等 的关系,客户端在upload文件时可以任意选择一个trakcer。

2、选择Storage server

当选定Group后,Tracker会在Group内选择一个Storage Server给 客户端

3、选择Storage path

当分配好Storage Server后,客户端将向Storage发送写文件请求, Storage将会为文件分配一个数据存储目录。 

注意: 剩余存储空间最多的优先。

4、生成Fileid 

选定存储目录之后,Storage会为文件生一个Fileid,由Storage Server Ip、文件创建时间、文件大小、文件crc32和一个随机数拼接 而成,然后将这个二进制串进行base64编码,转换为可打印的字符 串。

 5、生成文件名

当文件存储到某个子目录后,即认为该文件存储成功,接下来会为 该文件生成一个文件名,文件名由group、存储目录、两级子目 录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型) 拼接而成。

实时学习反馈

1.FastDFS上传文件成功后返回文件名由上面组成的___。

A 存储目录、两级子目录、fileid、文件后缀名

B group、两级子目录、fileid、文件后缀名

C group、存储目录、两级子目录、fileid、文件后缀名

D group、存储目录、fileid、文件后缀名 

 FastDFS概述_下载机制

 客户端带上文件名信息请求Tracker服务获取到存储服务器的ip地址 和端口,然后客户端根据返回的IP地址和端口号请求下载文件,存储服务器接收到请求后返回文件给客户端。

 

 内部机制如下

1 client询问tracker下载文件的storage,参数为文件标识(组名和文件名)

2 tracker返回一台可用的storage

3 client直接和storage通讯完成文件下载

 实时学习反馈

1.FastDFS分布式文件系统在下载文件的时候客户端带文件名请求 ___。

A Tracker

B Stroage

C Group

D 以上都是错误

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/717393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOs7 阿里云如何做云盘扩容?

不罗嗦直接说主题&#xff1a; 在开发中遇到得问题&#xff1a;磁盘满了&#xff0c;删又不知道从何下手&#xff0c;万一删错了那就是巨大得灾难&#xff0c;所以我们就需要磁盘扩容&#xff0c;当然磁盘为什么满&#xff1f;怎么排查以后再说&#xff0c;这里主要是说磁盘如…

Windows PCL GPU版本编译过程

网上教程很少&#xff0c;但是想用PCL GPU功能&#xff0c;于是决定自己踩坑&#xff0c;我有几个不同的环境组合&#xff1a; (1)win10cuda10.0vs2019PCL1.11.1cmake3.18.5&#xff08;失败&#xff09; (2)win10cuda11.2vs2019PCL1.11.1cmake3.18.5&#xff08;成功&#x…

【算法|动态规划系列No.5】leetcode62. 不同路径

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

No7.精选前端面试题,享受每天的挑战和学习

文章目录 详细说明下 Composition Api 与 Vue 2.x使用的Options Api详细说明下Proxy和Object.defineProperty详细说明下Loader和Plugin分析下vue2.0和vue3.0的原理vue3和react的异同点 详细说明下 Composition Api 与 Vue 2.x使用的Options Api Composition API 是 Vue 3 中引…

弱网测试(Charles模拟)

一、介绍 移动应用的网络环境多样&#xff0c;而且会出现在不同网络之间切换的场景&#xff0c;即使是在同一网络环境下&#xff0c;也会出现网络连接状态时好时坏的情况&#xff0c;比如时高时低的延迟、经常丢包、频繁断线&#xff0c;在乘坐地铁、穿越隧道&#xff0c;和地…

今日大模型日报

XPhoneBERT&#xff5c;文本到语音转换的音素表示的预训练多语言模型 XPhoneBERT: A Pre-trained Multilingual Model for Phoneme Representations for Text-to-Speech Linh The Nguyen, Thinh Pham, Dat Quoc Nguyen Github地址&#xff1a;https://github.com/VinAIResearch…

IO流~~

就是用来读写数据 2&#xff1a;IO流的分类 3&#xff1a;字节流的使用 1&#xff1a;文件字节输入流&#xff1a;每次读取一个字节 作用&#xff1a;以内存为基准&#xff0c;把磁盘文件中的数据以字节的形式读取到内存中去 性能慢读取中文字符输出无法避免乱码问题 2&…

数字化升级提效85%,箭牌不止家居智能

近年来&#xff0c;随着人们对生活品质的追求不断提升&#xff0c;家居行业也逐渐朝着更加智能化、个性化、环保可持续和互联网的方向发展。有数据显示&#xff0c;2023年中国家居市场规模将达到2万亿元人民币&#xff0c;年复合增长率为8.3%。激烈的市场竞争之下&#xff0c;可…

操作系统——第一章概论(下)

提示&#xff1a;冠盖满京华&#xff0c;斯人独憔悴 文章目录 声明1.3.1 操作系统的运行机制1.3.2 中断和异常1.3.3 系统调用1.4.1 操作系统体系结构1.4.2 操作系统体系1.5 操作系统引导1.6 虚拟机 声明 本文章内容是根据王道教材以及王道的视频课所写&#xff0c;写的目的方…

Java中操作文件(一)

目录 一、引入 二、File概述 2.1、属性 2.2、构造方法 2.3、方法 2.4、代码示例 示例1 示例2 示例3 示例4 示例5 示例6 示例7 示例8 一、引入 文件是操作系统中的重要概念&#xff0c;Java作为一个跨平台语言&#xff0c;可以针对不同的操作系统处理文件。…

83、基于STM32单片机录音机录音笔语音存储回放TF卡TFT屏系统设计(程序+原理图+PCB源文件+参考论文+硬件设计资料+元器件清单等)

单片机主芯片选择方案 方案一&#xff1a;AT89C51是美国ATMEL公司生产的低电压&#xff0c;高性能CMOS型8位单片机&#xff0c;器件采用ATMEL公司的高密度、非易失性存储技术生产&#xff0c;兼容标准MCS-51指令系统&#xff0c;片内置通用8位中央处理器(CPU)和Flash存储单元&a…

Springboot 接口对接文件及对象

两个sprongboot项目实现文件对接&#xff0c;在传入文件同时传递其他对象信息&#xff0c;比如接口如下 一、创建文件 例如在D盘下创建1.txt&#xff0c;里边写入内容 2、传送方代码实现 import org.springframework.core.io.FileSystemResource; import org.springframework.…

保护您的密码安全:ADSelfService Plus防止密码被盗

在数字时代&#xff0c;密码的安全性至关重要。随着黑客攻击的不断增加&#xff0c;我们必须采取必要的措施来保护我们的密码免受盗窃和滥用。在这篇文章中&#xff0c;我们将介绍ADSelfService Plus&#xff0c;这是一种强大的密码管理和自助服务解决方案&#xff0c;可以帮助…

反向代理缓存服务器 Squid 、Nginx、CDN部署讲解

目录 一、Squid 反向代理1.1 概念1.2 工作机制1.3 搭建 二、 Nginx 反向代理缓存 一、Squid 反向代理 1.1 概念 如果 Squid 反向代理服务器中缓存了该请求的资源&#xff0c;则将该请求的资源直接返回给客户端&#xff1b;否则反向代理服务器将向后台的 Web 服务器请求资源&a…

三者ICG聚甲基菁染料:ICG COOH,ICG NHS,ICG NH2,具有良好的水溶性

一、ICG-COOH--CAS号&#xff1a;181934-09-8 ICG-COOH&#xff08;吲哚菁绿羧酸&#xff09;中末端羧酸在活化剂&#xff08;如EDC或HATU&#xff09;存在下可与伯胺基反应&#xff0c;形成稳定的酰胺键。ICG是一种带负电荷的聚甲基菁染料&#xff0c;具有良好的水溶性&#…

远程服务器ubuntu安装Jupyter Lab详细教程

不用打开电脑&#xff0c;不用启动anaconda&#xff0c;随时随地&#xff0c;公交地铁上使用手机输入网站就能启动jupyter notebook进行代码编写、数据分析&#xff0c;着实是很方便。在你成功白嫖一台服务器之后&#xff0c;可以按照下面的教程&#xff0c;手把手教你配置一个…

car music

正常车载U盘即可 车载不可用的U盘 车载需要改进遍历文件夹

【机器学习核心总结】什么是BP反向传播算法

什么是BP反向传播算法 神经网络是个好工具&#xff0c;但就像有的刀削铁如泥&#xff0c;有的却只能拿来切豆腐。 真正决定神经网络好不好用的是神经元之间连接的权重和神经元的阈值。 如何确定这些数字&#xff0c;大部分时间我们都在使用反向传播&#xff0c;也就是常说的B…

Opencv图片样本预处理

前因 最近想学学&#xff0c;OPENCV识别物体&#xff0c;但是处理图片正样本时过于繁琐&#xff0c; 遂自己开发了工具&#xff0c;来处理样本图片&#xff0c;基于QT&#xff0c;文末附下载链接 程序 功能 一共有两个功能&#xff0c;一个是处理负样本&#xff0c;一个处理…

UE 5.1.1 引擎源码下载 执行Setup报错解决

Upcoming Disruption of Service Impacting Unreal Engine Users on GitHub - Announcements - Epic Developer Community Forums 文件下载地址&#xff1a;https://github.com/EpicGames/UnrealEngine/blob/9763f4c8f3fb047be1a4b5fee2b080587c1307a1/Engine/Build/Commit.gi…