CentOS 6:安装FastDFS搭建图片服务器

FastDFS是开源的高性能分布式文件系统

主要功能:文件存储 文件同步 文件访问 以及高容量和负载均衡 目的是为了解决海量的数据存储问题 适合4KB到500MB之间的文件

FastDFS的主要角色:

1.Tracker Server(跟踪服务器)

2.Storage Server(存储服务器)

3.Client(客户端)

CentOS 6:安装FastDFS搭建图片服务器

1.Tracker 主要做调度工作 起到均衡作用 管理所有的Storager(用组(group)为单位 每个group可以包含多个Storager)

每个storager启动后会连接Tracker 告诉Tracker自己所属group的信息 连接要保持心跳

2.Storager 主要提供容量和备份的服务

3.Client 上传下载数据的服务器 我们项目部署所在的服务器

Storage群下的每个Storager的文件是相互独立 每个Storager的累加总容量就是Storager群的总容量

一个Storager下可以由一台或多台存储服务器组成 但每个存储服务器中的文件是相同的 可以起到备份和负载均衡的作用

由于一个Storager下的文件都要保持相同 所以每个存储服务器必须保持文件的同步

Storager群下的容量不足时 可以增加Storager来扩充容量

Storage Server会定期向Tracker发送自己的存储信息 由于Tracker Server中每个Tracker的关系是对等的

所以客户端请求上传数据的时候 可以选择任意一个Tracker来处理上传请求 请求建立后 Tracker会选择

一个group中的一个Storage分配存储目录来存储数据 然后为上传的数据分配一个fileid 并生成存储文件 名

CentOS 6:安装FastDFS搭建图片服务器

一个group中某个Storage中存储了新文件 group中的Storage需要保持同步

每个storage写文件后 同时会写一份binlog binlog里不包含文件数据 只包含文件名等元信息 这份binlog用于后台同步

storage会记录向group内其他storage同步的进度 以便重启后能接上次的进度继续同步 

进度以时间戳的方式进行记录 所以最好能保证集群内所有server的时钟保持同步

storage的同步进度会作为元数据的一部分汇报到tracker上 tracke在选择读storage的时候会以同步进度作为参考


文件下载:

CentOS 6:安装FastDFS搭建图片服务器

下载时客户端可以选择任意tracker server
tracker发送download请求给某个tracker 必须带上文件名信息 tracke从文件名中解析出文件的group 大小 创建时间等信息

然后为该请求选择一个storage用来服务读请求


安装环境(单机版 tracker和storage在同一台虚拟机下):

虚拟机

CentOS 6.9 64位

CentOS 6:安装FastDFS搭建图片服务器

1.安装libfastcommon

tar -zxvf libfastcommonV1.0.7.tar.gz 

cd libfastcommon-1.0.7/

./make.sh

./make.sh install

由于libfastcommon安装后 会将libfastcommon.so赋值到/usr/lib64下 而FastDFS引用的位置是/usr/lib下的libfastcommon.so

所以安装后需要将libfastcommon.so拷贝到/usr/lib下

CentOS 6:安装FastDFS搭建图片服务器

2.安装FastDFS(tracker + storage)

tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
./make.sh

./make.sh install

配置tracker和storage

安装后进入/etc/fdfs目录:

CentOS 6:安装FastDFS搭建图片服务器

配置tracker:

复制一份再修改

cp tracker.conf.sample tracker.conf

vi tracker.conf 修改base_path路径(tracker的数据文件和日志目录)

CentOS 6:安装FastDFS搭建图片服务器

创建/home/fastdfs目录

mkdir /home/fastdfs

启动tracker:

CentOS 6:安装FastDFS搭建图片服务器

查看是否启动成功:

CentOS 6:安装FastDFS搭建图片服务器

设置开机启动:

vi /etc/rc.d/rc.local

CentOS 6:安装FastDFS搭建图片服务器


配置storage:

CentOS 6:安装FastDFS搭建图片服务器

CentOS 6:安装FastDFS搭建图片服务器

CentOS 6:安装FastDFS搭建图片服务器

CentOS 6:安装FastDFS搭建图片服务器

CentOS 6:安装FastDFS搭建图片服务器

CentOS 6:安装FastDFS搭建图片服务器

注意:

上述组名为group1 同一个组下的storage的端口号必须相同

如果有多个挂载磁盘则定义多个store_path
#store_path1=.....
#store_path2=......
#如果有多个则配置多个tracker

tracker_server=192.168.135.142:22122

tracker_server=xxx

启动:

CentOS 6:安装FastDFS搭建图片服务器

开机自动启动:

CentOS 6:安装FastDFS搭建图片服务器

CentOS 6:安装FastDFS搭建图片服务器

FastDFS安装成功可通过/usr/bin/fdfs_test测试上传 下载等操作

cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf

vi client.conf

CentOS 6:安装FastDFS搭建图片服务器

测试上传文件(1.png):

CentOS 6:安装FastDFS搭建图片服务器


CentOS 6:安装FastDFS搭建图片服务器

对应storage.conf指定存储目录下的文件:

CentOS 6:安装FastDFS搭建图片服务器


Java API实现Client端的上传下载删除及获取文件的信息