今天主要介绍FastDFS分布式文件存储。
场景切入
在大型网站中由于用户数和存储内容较多,存在大容量文件存储的场景,例如图片、视频、日志、文件等。如何保证这些资源的高可用性和快速访问,从而提升用户体验和网站性能?
分布式存储的由来
我们知道,根据业务体量的增大,一般分布式的设计是从单体应用演进开始的。最初,在单体项目中,
早期用户量可能比较少,整个系统的一个架构:服务代码跟我们的文件资源信息都存储在了一个服务器上面。
随着用户量越来越多,那么存储文件越来越多,本身服务器可能就只有比如:100G的磁盘空间,文件服务器里面存储的东西越来越多。那么,它会影响到整个服务器的资源的一个分配。
有人想,把我们这个文件服务器单独的给拆出来,作为一个单独服务器
上边实现了资源文件和代码的解耦。但是资源文件的存储量美誉得到根本性的解决。
于是,我们就需要拓宽服务器,我拓宽到10台,20台。。。其实就是要说的这个分布式文件存储系统。
常见的分布式存储框架
本章重点介绍FastDFS。
FastDFS 分布式存储
简介
官方介绍:
FastDFS是一个开源的分布式文件系统,特别适合于大容量文件存储的场景,例如图片、视频、日志、文件等。是一个开源的高性能分布式文件系统,专为解决大容量存储和负载均衡问题而设计。
中文官网[1]英文官网[2]学习地址[3]下载地址[4]源码包[5]性能测试[6]Gitee主页[7]
它具备以下核心功能:
FastDFS 功能特性
FastDFS 架构及工作原理
架构设计:
工作原理:
问题思考
如何上传文件?
上传文件过程描述:
如何下载文件?
文件下载过程描述:
如何保证高可用?
FastDFS设计为一个多副本分布式文件系统。多副本机制是FastDFS保证数据可靠性和容错能力的关键。
几个关键点:
通过以上设计提高容错能力和单点故障问题,保证高可用。
我们在架构图中发现,Tracker也是分布式部署,便于扩缩容。面对访问激增的问题,可通过增加节点的方式应对。
几个关键点:
总结
文章主要介绍分布式存储FastDFS 结构设计和原理和使用过程中的一些问题思考。
使用过程中FastDFS几个关键特性的优缺点对比:
特性 |
优点 |
缺点 |
架构设计 |
易于扩展、负载均衡 |
同步延迟 |
冗余备份 |
支持在线扩容 |
存储空间利用率不高 |
高性能 |
C语言编写,执行效率高 |
单点性能瓶颈 |
内存管理 |
- 内存零拷贝,减少系统开销 |
- 对内存要求较高 |
本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载者并注明出处:https://jmbhsh.com/qitabaihuo/34771.html