FastDFS安装及使用(开山篇)

1提出问题

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

①最初级的方式

在Web应用根目录下建立一个专门存储图片的目录。这样作会有三个问题
[1]若是文件体积不断增加,那么极可能把硬盘撑爆。
[2]Web应用从新部署后会致使用户文件目录被清空。
[3]集群模式下,必须保证多个应用服务器之间数据同步。github

②增长硬盘

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

③增长服务器

服务器的数量理论上是没有限制的,可是每一台服务器都有本身的IP地址,会致使文件上传后,下载文件的代码中须要考虑不一样文件用不一样IP地址去访问,很是麻烦。segmentfault

因此咱们须要这样一种服务器:

①上传下载的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处理用户请求。
app

3FastDFS主要工做流程

3.1文件上传流程

3.2文件下载流程

enter description here

3.3文件删除流程

4最后

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

本篇让咱们了解FastDFS的工做方式以及实用性,后面会写FastDFS服务器的搭建以及集成到Java的使用,请你们关注!

| 掘金 | segmentfault | V2EX | 知乎 | 博客园 | 开源中国 | github | 简书 | 芦苇科技 |

广州芦苇科技Java开发团队
author:yy_long
芦苇科技Java开发工程师
芦苇科技-广州专业软件外包服务公司

提供微信小程序、APP应用研发、UI设计等专业服务,专一于互联网产品咨询、品牌设计、技术研发等领域

访问 www.talkmoney.cn 了解更多

万能说明书 | 早起日记Lite | 凹凸壁纸 | 言财

相关文章
相关标签/搜索