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;
② 文件创建时间;
③ 文件大小;
④ 文件扩展名;
⑤ 随机数;