FastDFS文件管理系统:分布式文件系统、网络文件系统、多机器多文件分享存储空间


FastDFS了解:

博客:https://www.cnblogs.com/Leo_wl/p/6731647.html#_label9

简介:功能:上传(存储)、下载(访问)、存储系统同步

     解决问题:大容量、负载均衡

     适合场景:CMS图片库

     特点:客户端控制访问权限

     决定因素:数据存储方式、数据读取速率、数据安全机制

系统架构:

     跟踪服务器:项目经理、管理(调度存储服务器)者的角色、管理元信息少(内存存储、storage汇报信息)、单位cluster(cluster每个tracker对等)------>元信息 


     存储服务器:程序员、最底层劳动者、容量和备份数据、单位group(每个storage对等、互为副本)、group(项目组 优点:应用数据隔离、负载均衡、副本数定制 缺点:数据恢复只能依赖group里的其他副本慢!、单机容量小)


     客户端client:客户、安装有Nginx的本地服务器

FastDFS存储策略:

     卷即group、单位group(storage service的集合)、独立

     整个系统文件容量 = 所有group容量++

     整个存储空间不足-->动态添加group-->多台storage配置为一个group,增加容量

     group里面的storage server不足时:增加程序员、并告诉他当前项目的进度(同步),程序员开始工作(上线)

FastDFS的流程:

     Tracker Server Cluster中的每个Tracker是对等的:每个项目经理对等、都可以接收不同客户的需求

     上传流程:Tracker接收客户端上传文件的请求、分配group-->分配storage server

              客户端向storage发送些文件的请求,storage server 分配存储目录-->分配一块领域-->分配存储文件的名称

              文件格式:组名/磁盘/目录/文件名

     文件同步:说白了就是多线程copy  binlog(元信息日志)  类似于redis持久化同步操作

              同步进度以时间戳记录、保证集群内所有server时钟一致


     下载流程:客户端请求任意traker、tracker server存储元信息,可以根据文件名解析出group、大小、创建时间,选择一个storage来服务读请求

FastDFS方案:轻量级

     部署复杂程度:simple

     配置要求:common

     文件系统接口:可移植

     客户端:需要配套

     目录结构:不能指定

     产品级别:大中型

     成熟:比较成熟

     开发语言:C

     移行成本:较高!!!

     其他特点:不会对文件进行分块处理、mongodb GridFS就是一种分片处理的方式



服务器端的安装:

SpringBoot和FastDFS的整合:

https://blog.csdn.net/kokjuis/article/details/76614923

https://blog.csdn.net/qq741437836/article/details/74311802

步骤:

centeros的安装:

https://www.cnblogs.com/sunshinekevin/p/8085554.html

测试成功:

安装tracker服务器、client、storage service:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/panda/Desktop/panda.jpg

返回结果:group1/M00/00/00/rBA3iVrbJUOAdEUSAAHOxFEuSI0192.jpg 存储成功过了

安装nginx:

下载:fastdfs-nginx-module模块

fastdfs-nginx-module可以重定向文件连接到源服务器取文件,避免客户端由于复制延迟导致的文件无法访问错误。

tracker_server=172.16.55.137:22122

关闭命令:  service iptables stop 

永久关闭防火墙:chkconfig iptables off

traker server 

client server

storage server

成功实例:/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /home/panda/Desktop/panda.jpg 返回:group1/M00/00/00/rBA3iVrbPZeAee3eAAHOxFEuSI0557.jpg

nginx安装fastDFS模块  最终结果:成功访问 http://172.16.55.137:8888/group1/M00/00/00/rBA3iVrbPZeAee3eAAHOxFEuSI0557.jpg



全部启动命令:

/etc/init.d/fdfs_trackerd start

/etc/init.d/fdfs_storaged start

/etc/init.d/nginx