当前位置:网站首页>Read FastDFS in one article
Read FastDFS in one article
2022-08-03 23:51:00 【on the road of struggle】
目录
FastDFS 介绍
FastDFS 概念
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和**负载均衡**的问题.特别适合以文件为载体的在线服务,如相册网站、视频网站等等.
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、Mechanisms such as online expansion,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务.
FastDFS 作用
Suitable for storing user pictures、视频、文档等文件. 出于简洁考虑,FastDFSThere is no block storage for files,因此不太适合分布式计算场景.
FastDFS 优缺点
优点:
- Suitable for small and medium file storage(建议范围:
4KB<file_size<500MB
) - 主备Tracker服务,增强系统的可用性
- 系统不需要支持POSIX,这样的话就降低了系统的复杂度,使得处理的速度会更高
- 支持主从文件,支持自定义扩展名
- 支持在线扩容机制,增强了系统的可扩展性
- 实现了软RAID,增强了系统的并发处理能力和数据容错恢复能力
缺点:
- 直接按文件存储,The content of the file can be read directly,缺乏文件安全性
- 通过API下载,存在单点的性能瓶颈
- 不支持断点续传,对大文件将是噩梦
- 同步机制不支持文件正确性校验,降低了系统的可用性
- 不支持POSIX通用接口访问,通用性比较的低
- 对跨公网的文件同步,存在着比较大的延迟,需要应用做相应的容错策略
FastDFS 相关概念
FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client).
tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用.Tracker是FastDFS的协调者,负责管理所有的storage server和group,每个storage在启动后会连接Tracker,告知自己所属的group等信息,并保持Periodic heartbeat,tracker根据storage的心跳信息,建立group==>[storage server list]的映射表.
storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上.Storage server直接利用OS的文件系统调用管理文件.
client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与tracker server或存储节点进行数据交互.FastDFS向使用者提供基本文件访问接口,比如upload、download、append、delete等,以客户端库的方式提供给用户使用.
FastDFS 原理
FastDFS系统拓扑图
FastDFS分为Tracker、Storage,其中Storage负责存储文件,Tracker负责存储文件所在地址,主要作用是负载均衡和资源调度.
Tracker、Storage都可以实现集群部署,Tracker的每个节点地位平等,而Storage可以分为多个组,每个组之间保存的文件是不同的,组内部分为多个成员,每个成员保存的内容是一样,组成员地位一致,没有主从概念.
使用FastDFS存储文件优点:可以应对互联网的海量文件存储,一旦文件较多,可以随时横向扩展,且集群的实现也使系统不存在单点故障问题,用户不会因为服务器宕机而无法访问文件资源.
FastDFS核心工作流程
FastDFS 文件上传
1. client询问tracker上传到的storage,不需要附加参数;
2. tracker返回一台可用的storage;
3. client直接和storage通讯完成文件上传.
FastDFS 文件下载
Client询问tracker下载文件的storage,参数为文件标识(组名和文件名);
Tracker返回一台可用的storage;
Client直接和storage通讯完成文件下载.
Linux 环境搭建FastDFS
请参考:Centos 搭建FastDFS 分布式文件服务器搭建
Docker 环境搭建FastDFS
请参考: Docker 搭建FastDFS文件系统
SpringBoot 封装FastDFS 功能模块
边栏推荐
- 图论-虚拟节点分层建图
- SRE运维解密-什么是SRE:DevOps模型的具体实践!
- Zilliz 2023 Fall Campus Recruitment Officially Launched!
- win10+cuda11.7+pytorch1.12.0安装
- 浅谈我国产业园区未来的发展方向
- XSLT – 编辑 XML概述
- Use tf.image.resize() and tf.image.resize_with_pad() to resize images
- Redis persistence method
- 苹果对高通说:我4.45亿美元买下一个新园区,可能计划加快基带芯片自研
- 一文搞定 SQL Server 执行计划
猜你喜欢
随机推荐
图论-虚拟节点分层建图
FinClip,助长智能电视更多想象空间
免费的公共WiFi不要乱连,遭中间人攻击了吧?
Walk the Maze BFS
绕任意轴旋转矩阵推导
【深度学习】基于tensorflow的服装图像分类训练(数据集:Fashion-MNIST)
国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
FastDFS 一文读懂
用两个栈模拟队列
初始 List 接口
Super perfect version of the layout have shortcut, background replacement (solve the problem of opencv Chinese path)
Fluorescein-PEG-CLS, cholesterol-polyethylene glycol-fluorescein scientific research reagent
使用unbound在RHEL7上搭建DNS服务
BPF 可移植性和 CO-RE(一次编译,到处运行)
全球首款量产,获定点最多!这家AVP Tier1如何实现领跑?
rsync 基础用法
rsync basic usage
查看CUDA、pytorch等的版本号
电子邮件安全或面临新威胁!
逆波兰表达式求值