自学内容网 自学内容网

【SpringBoot整合系列】SpringBoot整合FastDFS(一)

FastDFS

  • FastDFS(Fast Distributed File System)是一款开源的分布式文件系统,它提供了高性能、高可靠性、高扩展性和高容错性的分布式文件存储解决方案。
  • FastDFS采用了类似于Google File System(GFS)的架构,它的设计目标是解决大规模数据存储和高访问速度的问题。

FastDFS特点

  1. 分布式架构:FastDFS采用分布式的设计,能够通过多台服务器共同完成文件存储和访问的任务,可以实现存储容量的无限扩展。
  2. 高性能:FastDFS采用了文件分块存储和负载均衡技术,可以实现高速读写,适用于高并发、大文件的存储和访问。
  3. 高可靠性:FastDFS采用了多台服务器备份和心跳检测机制,能够确保数据的安全性和高可靠性。
  4. 易于部署和管理:FastDFS采用了简单的部署和管理方式,易于安装和配置,对于需要快速搭建分布式存储的场景具有较高的适用性。
  5. 支持多种文件格式:FastDFS支持多种文件格式,包括图片、视频、文本等常见格式,可以满足不同业务需求的存储要求。

总体来说:FastDFS是一款高性能、高可靠性、易于部署和管理的分布式文件系统,适用于需要高速、大规模数据存储和访问的场景。

相关概念的介绍

Tracker Server

  • Tracker Server是FastDFS的跟踪器服务器,负责管理所有Storage Server节点,以及存储文件的元数据信息,包括文件名、文件大小、文件创建时间、文件存储位置等。
  • 客户端上传文件时,会先向Tracker Server发送请求,Tracker Server会返回一组可用的Storage Server节点列表,客户端再选择其中一个Storage Server进行文件上传。

Storage Server

  • Storage Server是FastDFS的存储服务器,负责存储客户端上传的文件数据和元数据信息。
  • 每个Storage Server节点都有自己的存储空间,可以通过多个Storage Server节点组成分布式存储系统,实现存储容量的无限扩展。
  • 在文件上传过程中,客户端会将文件数据分成多个文件块并分别上传到不同的Storage Server节点上,每个节点保存自己的文件块,从而实现文件的分布式存储和快速读取。

需要注意的是,Tracker Server和Storage Server是两个独立的服务,可以分别部署在不同的服务器上。Tracker Server负责管理Storage Server节点,而Storage Server则负责存储文件数据和元数据信息。当需要扩展存储空间时,可以通过增加Storage Server节点的方式实现存储容量的无限扩展。

FastDFS环境搭建【CentOS 7】

环境准备

名称说明
centos7.x
libfastcommonFastDFS分离出的一些公用函数包
FastDFSFastDFS本体
fastdfs-nginx-moduleFastDFS和nginx的关联模块
nginxnginx1.21.6

安装gcc和libevent

#安装gcc环境
yum install git gcc gcc-c++
#安装libevent
yum -y install libevent

上传安装包

安装包都上传到/opt/soft/FastDFS

  • libfastcommon-1.0.42.tar.gz
  • fastdfs-6.04.tar.gz
  • fastdfs-nginx-module-1.22.tar.gz
mkdir -p /opt/soft/FastDFS

安装libfastcommon

# 解压libfastcommon-1.0.42.tar.gz
tar -zxvf libfastcommon-1.0.42.tar.gz
cd libfastcommon-1.0.42/
# 编译
./make.sh
# 安装
./make.sh install

安装FastDFS

# 解压fastdfs-6.04.tar.gz
tar -zxvf fastdfs-6.04.tar.gz
cd fastdfs-6.04/
# 编译
./make.sh
# 安装
./make.sh install

拷贝配置文件到指定位置

fastdfs相关命令在/usr/bin下
fastdfs配置文件在/etc/fdfs下

将解压缩后的fastdfs里面的conf文件夹下的配置文件,拷贝到/etc/fdfs下统一管理。

cp /opt/soft/FastDFS/fastdfs-6.04/conf/* /etc/fdfs/

tracker配置

vim /etc/fdfs/tracker.conf
port=22122  # tracker服务器端口(默认22122,一般不修改)
base_path=/usr/local/fastdfs/tracker  # 存储日志和数据的根目录
# 创建文件夹
mkdir -p /usr/local/fastdfs/tracker
mkdir -p /home/yuqing/fastdfs
# 开放端口(云服务器要配置安全组)
firewall-cmd --permanent --zone=public --add-port=22122/tcp
# 启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
# 查看tracker是否启动成功
ps -ef | grep tracker

在这里插入图片描述

storage配置

vim /etc/fdfs/storage.conf
group_name=group1#设置组名
port=23000  # storage服务端口(默认23000,一般不修改)
base_path=/usr/local/fastdfs/storage  # 数据和日志文件存储根目录
store_path0=/usr/local/fastdfs/storage # 第一个存储目录
tracker_server=192.168.29.31:22122 #tracker服务器的IP和端口
http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
# 创建文件夹
mkdir -p /usr/local/fastdfs/storage
# 开放端口(云服务器要配置安全组)
firewall-cmd --permanent --zone=public --add-port=23000/tcp
# 启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
# 查看storage是否启动成功
ps -ef | grep storage

client测试上传文件

#修改/etc/fdfs/client.conf,需要修改的内容如下
vim /etc/fdfs/client.conf
base_path=/usr/local/fastdfs/client
tracker_server=192.168.29.31:22122
# 创建文件夹
mkdir -p /usr/local/fastdfs/client
# 测试上传(fdfs_test)
cd /usr/bin
./fdfs_test /etc/fdfs/client.conf upload /home/KGC.jpg

在这里插入图片描述
记住这个地址:http:192.168.29.31/group1/M00/00/00/wKgdH2YSGJuAa0D_AAEWuRS9uUs910_big.jpg
此时还不可以访问到该图片,需要配置web服务
但是可以在/usr/local/fastdfs/storage/data/00/00看到上传的文件
在这里插入图片描述

安装fastdfs-nginx-module模块到nginx

第一步

# 解压fastdfs-nginx-module-1.22.tar.gz
tar -zxvf fastdfs-nginx-module-1.22.tar.gz
cd fastdfs-nginx-module-1.22/src

# 将mod_fastdfs.conf配置文件拷贝到/etc/fdfs/
cp mod_fastdfs.conf /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf
store_path0=/usr/local/fastdfs/storage #存储目录,和storage.conf里面的配置要一样
tracker_server=192.168.29.31:22122  #tracker服务器的IP和端口
group_name=group1#设置组名
url_have_group_name = true #配置url使用组名
base_path=/usr/local/fastdfs/tmp #配置存储日志文件的位置

创建文件夹
mkdir -p /usr/local/fastdfs/tmp

cd /opt/soft/FastDFS/fastdfs-nginx-module-1.22/src
修改config配置文件,把两个local删除掉,因为之前安装的fastdfs的默认安装路径是/usr/include
vim config
ngx_module_incs="/usr/include"
CORE_INCS="$CORE_INCS /usr/include"

第二步:进入nginx文件夹

cd /usr/local/nginx/nginx-1.21.6

第三步 执行以下配置命令

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/opt/soft/FastDFS/fastdfs-nginx-module-1.22/src

第四步

make && make install

第五步

安装完之后在nginx.conf配置监听的服务和端口

cd /usr/local/nginx/conf

vim nginx.conf
listen       8888;    ## 该端口为storage.conf中的http.server_port相同,记得开放端口
#添加ngx_fastdfs_module模块,修改为自己设置的组名chen,后面添加文件存储的路径MOO
location /group1/M00 {
        ngx_fastdfs_module;
}

修改完配置文件后执行启动nginx
cp /usr/local/nginx/sbin/nginx /usr/bin
nginx
ps -ef |grep nginx

在这里插入图片描述

然后访问之前上传的图片,路径如下:
http://192.168.29.31:8888/group1/M00/00/00/wKgdH2YSGJuAa0D_AAEWuRS9uUs910_big.jpg
如果可以访问的到的话,那么说明已经安装成功了


原文地址:https://blog.csdn.net/weixin_37833693/article/details/137456557

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!