认识FastDFS和安装FastDFS到

因为公司系统有海量的图片需要进行上传,存储,和删除的操作,考虑到数据的备份和高性能的要求。有需要做技术储备,经讨论FastDFS能够解决以上问题。现仅仅做个小小的记录,方便以后能够运用到实际项目中。

1、初识FastDFS

FastDFS主要结局海量存储数据的问题,它是一款C编写的一款开源的分布式系统文件。充分考虑了冗余备份,负载均衡,线性扩容的机制
并注重高并发,高性能等指标。使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

2、FastDFS系统机构

FastDFS架构包括Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。

 

2.1、Tracker server

FastDFS文件系统中可以又多个tracker server组成一个tracker集群,他们的地位是平等的,即是它们之间相互通信同时提供服务。如果一个tracker server存在故障,tracker集群会通过轮询的方式换到另一台tracker.由此可见tracker的作用是负载均衡和调度。

 

2.2、Storage server

Storage 集群采用了分组存储方式。storage集群由一个或多个组构成,它们的关系也是平等的。不同组的Storage server是不会互相通信的,同一个组内的Tracker server可以互相连接进行文件同步,分组存储的好处是可以由用户去直接指定上传的组,当一个分组的存储服务器访问压力较大时,可以在该组增加存储服务器来扩充服务能力(纵向扩容)。当系统容量不足时,可以增加组来扩充存储容量(横向扩容),由此可见Storage server的作用是冗余备份、线性扩容, Storage 还能起到数据收集作用连接所有Tracker定向报告自己的磁盘剩余空间、文件同步状况、文件上传下载次数等统计信息

 

 

 

3.文件上传下载流程

3.1、文件上传

在客户端上传文件的前,storage会定向向tracker上传状态信息,客户端请求连接tracker时候,tracker会根据storage返回的信息返回可用的storage的信息给客户端,包括IP和端口,客户端可用根据该信息上传文件,storage会生成file_id,然后写入磁盘,然后将file_id(根据一定规则生成唯一编号)返回给客户端,客户端存储文件信息。

 

 

3.2、文件下载

文件下载是通过tracker根据请求的文件路径即文件ID 来快速定位文件,在FastDFS中,只提供了以api的方式实现文件上传,但是没有下载文件的接口,在storage需要下载nginx来实现文件的下载。下载流程是根据文件存储的组和磁盘和2级目录和file_id来定位到文件。

4、FastDFS+Nginx实现文件服务器

4.1、nginx和storage和tracker整合作用的区别

storage和tracker都要部署nginx但是nginx起的作用不一样,在storage中nginx起的作用是对外提供http文件下载接口而且还需要安装FastDFS-Nginx模块,而tracker安装nginx的目的是起到负载均衡、反向代理的作用。

 

 

你可能感兴趣的:(工作点滴)