Java高级架构之FastDFS分布式文件集群详解

本文详细介绍了FastDFS分布式文件系统,包括其主要概念:Tracker-server、Storage-server、Group和Metadata。讨论了与其他存储系统的对比,客户端与服务器的交互,FastDFS与Nginx的整合,以及如何安装和配置。还涉及了基于Token的防盗链实现、FastDHT数据去重的整合,以及在SpringBoot中集成FastDFS的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

FastDFS简介
FastDFS是一款开源的轻量级分布式文件系统,使用C实现,支持Linux、BSD等unix-like操作系统。值得注意的是,fastdfs并不是通用的文件系统,只能通过专用的API访问。
fastdfs为互联网应用量身定做,解决了大容量文件存储的问题,fastdfs追求高性能和高扩展性。fastdfs的主要概念:
tracker-server:跟踪服务器。用于跟踪文件,主要起调度作用。在内存中记录了所有存储组和存储服务器的状态信息,是客户端和数据存储的主要枢纽。相比GFS更为精简,因为不记录文件索引。
storage-server: 存储服务器。用于存储文件。直接使用操作系统的文件系统来管理和组织文件。
group: 组,卷。多个服务器存在一个组中,在一个组中的服务器存储的文件是完全相同的,并且同一个组的服务器地位是对等的。对于文件的操作可以在任意一个组中的服务器上进行。
metadata: 元数据。以键值对的方式存储,用于存储文件的相关信息。
在这里插入图片描述
各大存储系统的对比
话说没有对比就没有伤害,fastdfs也不是万能的,需要根据业务来选择适合的存储系统。
在这里插入图片描述

FastDFS客户端与服务器端交互原理

在这里插入图片描述
FastDFS+Nginx整合
架构图
在这里插入图片描述
安装FastDFS

mkdir /source
cd /source
yum install -y gcc gcc-c++ make cmake wget libevent
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.35.tar.gz
wget https://github.com/happyfish100/fastdfs/archive/V5.10.tar.gz
tar -zxvf V1.0.35.tar.gz
tar -zxvf V5.10.tar.gz
cd libfastcommon-1.0.35
./make.sh
./make.sh
 installln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
 cd ../
 cd fastdfs-5.10/
 ./make.sh
 ./make.sh install
 cd ../
 rm -rf libfastcommon-1.0.35
 rm -rf fastdfs-5.10
 cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
 cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
 cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
 mkdir -p /data/fdfs/tracker
 mkdir -p /data/fdfs/storage
 ln -s /usr/bin/stop.sh /usr/local/bin/stop.sh
 ln -s /usr/bin/restart.sh /usr/local/bin/restart.sh

修改配置文件
修改跟踪器配置文件:

base_path=/data/fdfs/tracker

修改存储器配置文件:

base_path=/data/fdfs/storage
store_path0=/data/fdfs/storage
tracker_server=192.168.80.3:22122

修改客户端配置文件:

base_path=/data/fdfs/client
tracker_server=192.168.80.3:22122

启动

/etc/init.d/fdfs_trackerd start
/etc/init.d/fdfs_storaged start

netstat -tunlap | grep :22122
tcp    0   0 0.0.0.0:22122      0.0.0.0:*        LISTEN   7247/fdfs_trackerd
tcp    0   0 192.168.80.3:22122   192.168.80.3:39318   ESTABLISHED 7247/fdfs_trackerd
tcp    0   0 192.168.80.3:39318   192.168.80.3:22122   ESTABLISHED 7444/fdfs_storaged

启动后要查看状态, 出现 active (exited) 字样可以尝试重启服务。
测试

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /source/FastDFS_v5.05.tar.gz
group1/M00/00/00/wKhQA1ysjSGAPjXbAAVFOL7FJU4.tar.gz

文件存储在:

ll /data/fdfs/storage/data/00/00/wKhQA1ysjSGAPjXbAAVFOL7FJU4.tar.gz

安装Nginx并配置模块

# 安装Nginx需要的pcre(Perl兼容正则表达式)库,允许Nginx使用rewrite模块提供URL重写功能。
yum install pcre pcre-devel perl-ExtUtils-Embed -y
# 安装openssl-devel,允许Nginx提供HTTPS服务。
yum install openssl-devel -y
# 下载软件包
cd /source
wget http://
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值