Linux

01_FastDFS分布式文件系统

2017-03-27  本文已影响403人  对方不想理你并向你抛出一个异常

实际开发中的问题

在实际项目开发中我们一般希望文件系统能帮我们解决以下问题,如:1.超大数据存储;2.数据高可用(冗余备份);3.读/写高性能;4.海量数据计算。最好还得支持多平台多语言,支持高并发。

由于单台服务器无法满足以上要求,这就迫使开发者不得不考虑使用其他方式解决此类问题。分布式文件系统就在这样迫切的需求下孕育而生。

什么是FastDFS

FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务,如相册网站、视频网站等等。在UC上就有基于FastDFS开发向用户提供了:网盘,社区,广告和应用下载等业务的存储服务。

FastDFS架构

FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)

  1. 轻量级(相比GFS简化了master角色,不再管理meta数据信息)。
  2. 对等结构。
  3. 分组方式。

FastDFS协议

FastDFS角色间是基于TCP/IP协议进行通信,协议包格式为:header + body。具体结构如图:


FastDFS协议

上传机制

上传机制

下载机制

下载机制

同步时间管理:

精巧的FID

说到下载就不得不提文件索引(又称:FID)的精巧设计了。文件索引结构如下图,是客户端上传文件后存储服务器返回给客户端,用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。


文件FID

快速定位文件:

知道FastDFS FID的组成后,我们来看看FastDFS是如何通过这个精巧的FID定位到需要访问的文件。

主要内容包含:FastDFS各角色的任务分工/协作,文件索引的原理设计以及文件上传/下载操作的流程。通过此次学习我们对FastDFS有了初步的了解,如:

参考:
taotao商城项目中FastDFS中安装配置
Java程序员眼中的Linux

下一篇

上一篇下一篇

猜你喜欢

热点阅读