FastDFS分布式文件系统架构

FastDFS分布式文件系统架构

一、 分布式文件系统

           FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。



 

 

二、 FastDFS系统架构


 
 



 

角色一:tracker

tracker是客户端和storage交互的枢纽,主要做调度工作,起负载均衡的作用;

① 记录分组的信息;

② 记录存储服务器storage的信息;

③ 负载均衡;

④ 调度;

 

角色二:storage

① 存储图片等文件数据;

② 同一个group内的storage间,会进行数据同步;

③ storage服务器会定时向tracker上报状态信息;(本地同步时间、所有分组信息)

 

 

三、 FastDFS - 上传文件


File file = new File("/Users/hyy044101331/Downloads/001.png");
String fileId = fileStorageService.uploadFile(file);
log.info("----------, fileId = {}" ,fileId);

  

 http://192.168.1.42/group1/M00/00/00/wKgBKlbUZYqAWrIYAADJGnU9rhU540.png

 

 

四、 FastDFS - 下载文件

 

 

String outPath = "/Users/hyy044101331/Downloads/077.png";
byte[] bytes = fileStorageService.downloadFile(fileId);
File outFile = FileUtil.getFileFromBytes(bytes,outPath);

 

 

 

五、 文件访问路径

http://192.168.1.42/group1/M00/00/00/wKgBKlbUZYqAWrIYAADJGnU9rhU540.png

"192.168.1.42":  storage服务器ip;

"group1":   组名;

"M00":  虚拟磁盘路径;

"00/00":  数据2级目录;

              虚拟磁盘路径下的数据文件存储目录;

"xxx.png":  文件名,

                 影响文件名生成的因素:

                           ① client的ip;

                           ② 文件创建时间;

                           ③ 文件大小;

                           ④ 文件扩展名;

                           ⑤ 随机数;

        

 

 

猜你喜欢

转载自hyy044101331.iteye.com/blog/2281160