客户端 <–> 文件服务器代理 <–> FDFS
1. 概述
文件服务器是 FDFS(FastDFS)文件存储系统的一个代理。
客户端在上传文件前,需要计算文件 md5
指纹,客户端通过指纹与服务器交互,如果指纹已在服务器存库,那说明该文件曾经上传,如果文件状态是上传完毕,那么无需重复上传,也就是秒传。因为在文件内容里不保存文件名,换句话说,文件服务器只保存文件内容,并不保存文件名,文件名和文件目录由其它业务服务进行维护。所以文件服务器与其它业务系统没有耦合关系。
- 支持 HTTP/TCP 协议。
- 支持小文件上传,下载,续传,秒传等基本功能。
- 支持本地文件缓存,针对热点文件上传下载。
- 不支持文件加密,文件目录等逻辑功能。
文件信息需要建立与业务信息建立关系,请客户端上传或者下载成功文件后,再向相关的业务服务器添加关联的存储记录。
文件服务只支持小文件存储,大文件可以在客户端进行切割成小文件。
2. 架构
对象 | 描述 |
---|---|
client | 客户端 |
lvs | 服务器集群系统负载均衡 |
file server | 文件服务器 |
file | 存储磁盘文件 |
mysql | 文件服务器记录文件信息以及 fdfs 对应的文件索引信息。 |
fdfs | FastDFS是一个开源的轻量级分布式文件系统。 |
3. 逻辑时序