FastDFS简介

1提出问题

在目前的互联网应用中,服务器上会存储大量的用户上传的文件。例如:电商网站会存储大量商品图片,用户评论图片。这类文件会随着用户数量的增加、商品数量的增加以及评论数据的增加而持续增长。那么这些海量的持续增加的文件该如何保存呢?

①最初级的方式
在Web应用根目录下创建一个专门存储图片的目录。这样做会有三个问题
[1]如果文件体积不断增长,那么很可能把硬盘撑爆。
[2]Web应用重新部署后会导致用户文件目录被清空。
[3]集群模式下,必须保证多个应用服务器之间数据同步。

②增加硬盘
一块硬盘不够,可以在服务器上再增加硬盘,但毕竟服务器上能够挂载的硬盘数量是有限的。

③增加服务器
服务器的数量理论上是没有限制的,但是每一台服务器都有自己的IP地址,会导致文件上传后,下载文件的代码中需要考虑不同文件用不同IP地址去访问,非常麻烦。

所以我们需要这样一种服务器:
①上传下载的IP地址固定不变
②扩容简单,且扩容不会导致访问地址变化,也就是说相关的Java代码不需要根据扩容情况修改
③稳定高效,无单点故障

2FastDFS

2.1简介
FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等系统。

FastDFS是为互联网应用量身定做的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。和现有的类GoogleFS分布式文件系统相比,FastDFS的架构和设计理念有其独到之处,主要体现在轻量级、分组方式和对等结构三个方面。

FastDFS可以到GitHub上下载源码。
https://github.com/happyfish1…

2.2FastDFS基本架构
①Storage存储服务器
实际存储文件的专门服务器。整个集群下划分为多个组,每一个组中可以有多台具体存储服务器。同组的服务器靠同步线程确保内容一致。同组多台服务器之间没有主备之分,轮换提供服务,以此来保证不会发生单点故障。由于组内各服务器保存的数据一致,所以一个组的存储容量等于组内容量最小的服务器,故而建议使用相同配置的服务器作为Storage。
②Tracker追踪服务器
Tracker负责监控Storage的存储状态。Storage会按照一定的时间间隔不断的向Tracker汇报自己的健康状态、剩余容量、繁忙程度等等。Tracker据此选择健康状态好、剩余容量大、繁忙程度低的Storage处理用户请求。

在这里插入图片描述

3FastDFS主要工作流程

3.1文件上传流程
在这里插入图片描述

3.2文件下载流程
在这里插入图片描述

3.3文件删除流程

在这里插入图片描述

4最后

FastDFS是一款开源的轻量级分布式文件系统,纯C实现,支持Linux, FreeBSD等UNIX系统,类google FS, 不是通用的文件系统,只能够通过专有API访问,目前提供了C,Java和PHP API
为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性
FastDFS可以看做是基于文件的key-value存储系统,称为分布式文件存储服务更为合适

内容转自 https://segmentfault.com/a/1190000017254013

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值