FastDFS是一个轻量级的分布式文件系统,在实际生产环境往往以集群的形式部署,保证了服务的高可用。本文重点阐述FastDFS集群的搭建和项目实战。
上传流程图
下载流程图
基本概念可参考作者上篇文章:FastDFS极速入门
- FastDFS不会对文件进行分块存储,直接保存到Storage服务上,这也是不适合超大文件存储的原因,官方建议(4K~500M),优点:简介高效。
- FastDFS采用分组存储方式,同一组可以包括多个Storage Server,其中一个Storage接收到上传的文件,会同步文件到同组其他Storage Server。
- 一个组的存储容量为组内Storage Server容量最小的那个。优点:组内服务压力较大时可以增加Storage Server来缓解压力;系统容量不足时增加组来获得更大的存储空间。
- 文件上传成功返回的文件ID由组名,磁盘目录和文件名构成。
- 系统环境:centos 7.3
- 跟踪服务器1(Tracker):192.168.72.135
- 跟踪服务器2(Tracker):192.168.72.136
- 存储服务器1(Storage):192.168.72.135---(group1)
- 存储服务器2(Storage):192.168.72.136---(group1)
- 存储服务器3(Storage):192.168.72.137---(group2)
由于电脑性能有限,但要模拟多group,只虚拟了3个节点,对group1做了两个节点来备份数据,group2为单节点,生产环境要每个组至少两个节点来保证高可用。
- fastdfs-5.11.tar.gz
- fastdfs-nginx-module-master.zip
- libfastcommon-1.0.36.tar.gz
- nginx-1.8.1.tar.gz
Tracker和Storage部署
- 1:节点1,节2,节点3分别安装FastDFS,具体安装参考上篇文章:FastDFS极速入门
- 2:分别关闭三个节点的防火墙,或者配置防火墙开放端口,关闭防火墙: systemctl stop firewalld
- 3:修改节点1的tracker.conf配置文件:
- >mkdir /data/fdfs-tracker
- >vi /etc/fdfs/tracker.conf
- 把base_path修改为:base_path=/data/fdfs-tracker
- 4:修改节点2的tracker.conf配置文件:同上
- 5:修改节点1的storage.conf配置文件:
- > mkdir /data/fdfs-storage/base
- > mkdir /data/fdfs-storage/storage0
- >vi /etc/fdfs/storage.conf
- 把group_name修改为:group_name=group1
- 把base_path修改为:base_path=/data/fdfs-storage/base
- 把store_path0修改为:store_path0=/data/fdfs-storage/storage0
- 把tracker_server修改两个tracker节点地址:
- tracker_server=192.168.72.135:22122
- tracker_server=192.168.72.136:22122
- 6:修改节点2的storage.conf配置文件,同步骤5。
- 7:修改节点3的storage.conf配置文件,
- 把group_name修改为:group_name=group2
- 其他同步骤5。
- 8:节点1,节点2上启动tracker服务
- >service fdfs_trackerd start
- 9:节点1,节点2和节点3上启动storage服务
- >service fdfs_storaged start
Tracker和Storage安装完成,可以使用FastDFS自带的客户端进行上传下载测试,具体操作方法,参考上篇
fastdfs-nginx-module和nginx安装
- 所有节点安装fastdfs-nginx-module模块
- fastdfs-nginx-module模块作用:
- 文件上传到组内一个storage存储后,storage服务会吧文件同步到组内其他storage,这就存在时间延时问题,如果此时客户端通过nginx访问到还未同步完成的组内其他storage会导致文件不存在无法访问错误,fastdfs-nginx-module可以解决该问题的发生,通过重定向到源storage节点来获取文件。
- root目录解压fastdfs-nginx-module:
- >unzip fastdfs-nginx-module.zip
- 安装依赖包:
- >yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel
- 安装nginx
- >tar -zxvf nginx-1.8.1.tar.gz
- >cd nginx-1.8.1
- >https://blog.51cto.com/u_12205/configure --prefix=/opt/nginx --add-module=/roo/fastdfs-nginx-module/src
- >make && make install
- 复制fastdfs-nginx-module中配置文件到/etc/fdfs目录,并修改配置文件:
- >cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
- >vi /etc/fdfs/mod_fastdfs.conf
- tracker_server修改为:
- tracker_server=192.168.72.135:22122
- tracker_server=192.168.72.136:22122
- group_name修改为:
- 节点1:group_name=group1
- 节点2:group_name=group1
- 节点3:group_name=group2
- url_have_group_name修改为:
- url_have_group_name = true
- 复制FastDFS部分配置文件到/etc/fdfs目录:
- > cd /root/fastdfs-5.1/conf
- >cp http.conf mime.types /etc/fdfs/
- 修改nginx.conf配置文件:
- 启动nginx:
- >https://blog.51cto.com/u_12205/nginx -c conf/nginx.conf
到此FastDFS集群已经搭建完成,文件上传后可以通过任意storage节点上的nginx来获得文件
添加配置文件
- src/main/resoureces目录下添加fdfs_clent.conf配置文件,内容如下:
创建FdfsClient类
- 静态代码块:
文件上传
文件下载
获得文件属性
文件删除
到此这篇fastdfs架构(fastdfs架构图)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/kjbd-jg/60993.html