【面经】谈谈你对FastDFS的了解

FastDFS是什么

复制代码
FastDFS是一个开源的轻量级分布式文件系统,
它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。
特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、在线扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务

FastDFS 作用

复制代码
适合用来存储用户图片、视频、文档等文件。
出于简洁考虑,FastDFS没有对文件做分块存储,因此不太适合分布式计算场景

FastDFS架构设计

复制代码
Tracker server:追踪服务器,负责管理文件存储和同步,可以有多台,客户端和Storage server主动连接Tracker server。

Storage server:存储服务器,负责文件存储和同步,可以有多台,连接Tracker server和文件服务器,启动一个单独的线程来完成对一台Tracker server的连接和定时报告。

Client:客户端,连接Tracker server和文件服务器,通过API实现文件的上传和下载。

在FastDFS中,Tracker server之间相互独立,不存在直接联系。
客户端和Storage server主动连接Tracker server。
Storage server主动向Tracker server报告其状态信息,包括磁盘剩余空间、文件同步状况、文件上传下载次数等统计信息。
Storage server会连接集群中所有的Tracker server,向他们报告自己的状态。

FastDFS优缺点

优点

复制代码
适合中小文件存储(建议范围:4KB<file_size<500MB)。
主备Tracker服务,增强系统的可用性。
系统不需要支持POSIX,这样的话就降低了系统的复杂度,使得处理的速度会更高。
支持主从文件,支持自定义扩展名。
支持在线扩容机制,增强了系统的可扩展性。
实现了软RAID,增强了系统的并发处理能力和数据容错恢复能力

缺点

复制代码
直接按文件存储,可直接读取文件内容,缺乏文件安全性。
通过API下载,存在单点的性能瓶颈。
不支持断点续传,对大文件将是噩梦。
同步机制不支持文件正确性校验,降低了系统的可用性。
不支持POSIX通用接口访问,通用性比较的低。
对跨公网的文件同步,存在着比较大的延迟,需要应用做相应的容错策略
相关推荐
济南java开发,求内推2 天前
docker 安装fastdfs
docker·fastdfs
武子康15 天前
Java-181 OSS 实战指南:Bucket/外链/防盗链/计费与常见坑
java·大数据·分布式·oss·云存储·fastdfs·ali
武子康18 天前
Java-182 OSS 权限控制实战:ACL / RAM / Bucket Policy 与错误排查
java·数据库·阿里云·云计算·oss·fastdfs·fdfs
武子康20 天前
Java-179 FastDFS 高并发优化思路:max_connections、线程、目录与同步
java·开发语言·nginx·性能优化·系统架构·fastdfs·fdfs
武子康1 个月前
Java-174 FastFDS 从单机到分布式文件存储:实战与架构取舍
java·大数据·分布式·性能优化·系统架构·dfs·fastdfs
橙-极纪元2 个月前
文件存储服务有哪些?他们优缺点分别是什么?FastDFS、MinIO、Ceph、HDFS、MooseFS、TFS、七牛云、阿里云 OSS
hdfs·minio·七牛云·tfs·fastdfs·阿里云 oss·文件存储服务
yunmi_3 个月前
分布式文件存储系统FastDFS(入门)
java·分布式·maven·fastdfs
core5124 个月前
fastdfs快速部署、集成、调优
docker·部署·springboot·fastdfs·调用
妙BOOK言5 个月前
FalconFS: Distributed File System for Large-Scale Deep Learning Pipeline——论文阅读
论文阅读·元数据·分布式文件系统
XMYX-05 个月前
FastDFS 6.11.0 单机环境搭建与测试(附 Nginx 集成)+ docker构建+k8s启动文件
nginx·docker·kubernetes·fastdfs