传统的图片上传模式:
集群环境下,传统的图片上传模式不能满足用户需求。保存在不同tomcat容器中的图片无法保证被访问到,因此需要搭建一个图片服务器,专门保存图片。
集群环境下的图片上传模式:
FastDFS是用c语言编写的一款开源的分布式文件系统。存储空间可以横向扩展,可以实现服务器的高可用。支持每个节点有备份机。
FastDFS架构:
Tracker:追踪/调度服务器,作用:负载均衡和调度,管理存储集群,收集storage集群的状态。自身也可集群,每个tracker节点的地位均等。
Storager:存储服务器,实际保存文件,利用操作系统自带的文件系统来管理文件。分为多个组,组间保存的内容是不同的,每个组内多个成员保存内容是相同的,组内节点地位均等。也没有主从概念。
文件上传流程:
文件下载流程:
上传服务器的文件,因为本身上传文件可能重名,所以服务器会给文件重命名。文件路径规则如下:
以上图路径为例:
组名:文件上传后所在的storage组名称,在文件上传成功后由storage服务器返回,需要客户端自行保存。
虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。