1、概述
C/C++文件服务器主要是 FDFS (FastDFS)文件存储系统的一个文件代理。文件服务支持 HTTP 协议,支持上传,下载基本功能,支持秒传文件(如果文件曾经上传到服务器,服务会记录文件信息,不用再次上传),这些文件信息会记录在文件服务对应的数据库。文件服务器也有本地文件缓存,主要支持热点文件上传下载。
每个文件上传前客户端需要计算其 Md5 值,文件 Md5 值是文件内容的唯一证书,客户端根据该值跟服务器交互,如果Md5已记录在数据库,那说明该文件曾经上传到服务器。因为文件内容不保存文件名,所以文件服务器也只保存文件内容,并不保存文件名,文件名由其它服务进行维护。
文件服务器只保存文件数据,与其它系统没有任何业务逻辑关系。只支持小文件的上传下载,续传等功能。文件需要加密的可以在客户端加密,文件服务器不作任何加密操作。文件信息需要建立与业务信息的关系,请客户端上传或者下载成功文件后,再向相关的业务服务器添加关联的存储记录。
2、架构图
client:登录的客户端。
lvs: 服务器集群系统负载均衡。
file server和fdfs均表示服务器集群,支持多机器部署共同工作。
file :表示缓存磁盘的文件。
mysql:文件服务器记录文件信息以及 fdfs 对应的文件索引信息。
fdfs:FastDFS是一个开源的轻量级分布式文件系统。
架构图3、逻辑时序
逻辑时序图更精彩内容,请关注我的博客:https://wenfh2020.com
网友评论