FastDFS


参考:

动力节点 fastdfs:FastDFS 讲义.docx

一、FastDFS 概述

二、环境搭建

1、Linux-centos7 上安装 FastDFS(繁琐)

2、docker 安装 FastDFS(推荐)

参考:https://blog.csdn.net/qq_40942490/article/details/110182615

1.拉取镜像

docker pull delron/fastdfs

2.使用 docker 镜像构建 tracker 容器(跟踪服务器,起到调度的作用)

docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs -v /etc/localtime:/etc/localtime delron/fastdfs tracker

3.使用 docker 镜像构建 storage 容器(存储服务器,提供容量和备份服务)

TRACKER_SERVER=本机的 ip 地址:22122 ,本机 ip 地址不要使用 127.0.0.1
image.png

docker run -dti  --network=host --name storage -e TRACKER_SERVER=192.168.157.133:22122 -v /var/fdfs/storage:/var/fdfs  -v /etc/localtime:/etc/localtime  delron/fastdfs storage

4.进入 storage 容器,到 storage 的配置文件中配置 http 访问的端口,配置文件在/etc/fdfs 目录下的 storage.conf

#进入容器
docker exec -it storage bash

#进入目录
cd /etc/fdfs/

#编辑文件
vi storage.conf

image.png
默认端口是 8888,也可以不进行更改。

5.修改 storage 中的 nginx 不需要安装

cd /usr/local/nginx/conf

vi nginx.conf

image.png

6.修改完配置重启容器,没有修改就不需要重启

docker stop storage

docker start storage

如果重启后无法启动的会,可能是报下面错误了,手动创建 vi /var/fdfs/logs/storaged.log 文件即可
tail: cannot open ‘/var/fdfs/logs/storaged.log’ for reading: No such file or directory

7.测试

7.1 进入 storage 容器,进入/var/fdfs 目录

docker exec -it storage bash

cd /var/fdfs

echo hello 这是我的第一个测试文件,大家觉得不错关注下吧>a.txt

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf a.txt

image.png

浏览器访问 http://ip:8888/group1/M00/00/00/wKgcgF-\_Le6AS4LvAAAATzab9Do068.txt
端口根据你在 starage 里面设置的要保持一致,访问之前关闭防火墙或者自己单独开放端口

8.开放端口

firewall-cmd --zone=public --permanent --add-port=8888/tcp

firewall-cmd --zone=public --permanent --add-port=22122/tcp

firewall-cmd --zone=public --permanent --add-port=23000/tcp

重启防火墙

systemctl restart firewalld

9.开机启动容器

设置容器随 docker 启动而启动(由于 docker 是开机启动的,所以容器也会随之启动)

docker update --restart=always tracker

docker update --restart=always storage

三、分布式文件系统 FastDFS 的 HTTP 访问

四、FastDFS 在 Java 项目中开发示例

服务器指定端口未暴露

由于服务器防火墙的原因,导致指定的端口未暴露会出现如下问题:
1、浏览器访问 fastdfs 上传的资源访问不到http://192.168.157.133:8888/group1/M00/00/00/wKidhWF1ABqAYqUwAAAATzab9Do485.txt
2、fastdfs-client 客户端连接 fastdfs 服务出错
会报下面错误:

fastDFS 报错:Unable to borrow buffer from pool

解决方案(centos7):

1、关闭防火墙

由于 FastDFS 安装在 Linux 中 22122 端口被管控,windows 系统访问时需要先关闭防火墙或者开放该端口 1.查看防火墙状态:

firewall-cmd –state

2.关闭并禁用防火墙,可能需要重启服务器

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

3.查看防火墙状态:

firewall-cmd –state
not running

2、开放端口

firewall-cmd --zone=public --permanent --add-port=8888/tcp

firewall-cmd --zone=public --permanent --add-port=22122/tcp

firewall-cmd --zone=public --permanent --add-port=23000/tcp

#重启防火墙
systemctl restart firewalld

然后重启 fastdfs 服务(tracker、storage、nginx)

五、FastDFS 在 Web 项目中应用

六、FastDFS 分布式文件系统集群


文章作者: CoderXiong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CoderXiong !
  目录