分布式文件系统FastDFS在CentOS7上的安装及与Springboot的整合
1. 概述
FastDFS 是目前比较流行的分布式文件系统,可以很容易的实现横向扩展、动态扩容、灾备、高可用和负载均衡。
FastDFS 的服务分为 tracker 服务 和 storage 服务, tracker 服务负责管理,storage 服务负责存储。
FastDFS 的存储节点有分卷(分组)的概念,不同分卷的服务器数据不同,相当于分片,同一分卷中的服务器数据相同,相当于副本,从而实现负载均衡。
今天我们就来聊一聊FastDFS在CentOS7上是如何安装,以及如何与Springboot整合的。
2. 场景说明
服务器A IP:192.168.1.22
服务器B IP:192.168.1.8
在服务器A安装 FastDFS 的 tracker (管理)
在服务器B安装 FastDFS 的 storage(存储)
3. FastDFS在CentOS7上的安装
3.1 下载 FastDFS 安装包
下载地址:https://github.com/happyfish100/fastdfs/releases

截图来自于GitHub
3.2 下载 libfastcommon 安装包
下载地址:https://github.com/happyfish100/libfastcommon/releases

截图来自于GitHub
3.3 下载 fastdfs-nginx-module 安装包
下载地址:https://github.com/happyfish100/fastdfs-nginx-module/releases

截图来自于GitHub
3.4 下载最新版本的Nginx安装包
下载地址:https://nginx.org/en/download.html

截图来自于官网
3.5 将下载的安装包统一拷贝到CentOS7的 /home 目录下
3.6 安装依赖包
# yum install -y gcc gcc-c++
# yum install -y libevent
# yum install -y perl
3.7 安装 libfastcommon
1)解压缩
# cd /home
# tar -zvxf libfastcommon-1.0.53.tar.gz
2)执行编译
# cd libfastcommon-1.0.53
# ./make.sh
3)执行安装
# ./make.sh install
3.8 安装 FastDFS
1)解压缩
# cd /home
# tar -zxvf fastdfs-6.07.tar.gz
2)执行编译
# cd fastdfs-6.07
# ./make.sh
3)执行安装
# ./make.sh install
3.9 拷贝配置文件模板
# cd /home/fastdfs-6.07/conf
# cp * /etc/fdfs/
3.10 3.5 到 3.9 的操作,服务器A、服务器B都要执行
3.11 在服务器A配置 tracker 服务
1)配置 tracker 服务
# cd /etc/fdfs/
# vi tracker.conf

2)创建工作目录
# mkdir -p /usr/local/fastdfs/tracker
3)启动 tracker 服务
# /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
3.12 在服务器B配置 storage 服务
1)配置 storage 服务
# cd /etc/fdfs/
# vi storage.conf



2)创建工作目录
# mkdir -p /usr/local/fastdfs/storage
3)启动 storage 服务
# /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
3.13 命令行测试文件上传
1)修改 client 配置文件
# cd /etc/fdfs
# vi client.conf

2)创建目录
# mkdir -p /usr/local/fastdfs/client
3)测试文件上传
# /usr/bin/fdfs_test /etc/fdfs/client.conf upload 1.png
结果主要内容:
group_name=zhuifengren, remote_filename=M00/00/00/wKgBCGFOzh6AB7GRAABdyNYCZvQ876.png
source ip address: 192.168.1.8
file timestamp=2021-09-25 15:22:06
file size=24008
file crc32=3590481652
example file url: http://192.168.1.8/zhuifengren/M00/00/00/wKgBCGFOzh6AB7GRAABdyNYCZvQ876.png
4)在 storage 工作目录查看文件
# cd /usr/local/fastdfs/storage/data/00/00
# ll
-rw-r--r--. 1 root root 24008 Sep 25 15:22 wKgBCGFOzh6AB7GRAABdyNYCZvQ876_big.png
-rw-r--r--. 1 root root 49 Sep 25 15:22 wKgBCGFOzh6AB7GRAABdyNYCZvQ876_big.png-m
-rw-r--r--. 1 root root 24008 Sep 25 15:22 wKgBCGFOzh6AB7GRAABdyNYCZvQ876.png
-rw-r--r--. 1 root root 49 Sep 25 15:22 wKgBCGFOzh6AB7GRAABdyNYCZvQ876.png-m
3.14 安装并配置Nginx
Nginx 必须和 storage 安装在同一个节点上,才能通过Http的方式访问图片。
1)解压 fastdfs-nginx-module
# cd /home
# tar -zxvf fastdfs-nginx-module-1.22.tar.gz
2)修改 config 配置文件
# cd /home/fastdfs-nginx-module-1.22/src
# vi config

3)修改 mod_fastdfs.conf 配置文件
# cd /home/fastdfs-nginx-module-1.22/src
# cp mod_fastdfs.conf /etc/fdfs/
# mkdir -p /usr/local/fastdfs/tmp
# cd /etc/fdfs/
# vi mod_fastdfs.conf



4)安装Nginx 的依赖包
# yum install -y gcc-c++
# yum install -y pcre pcre-devel
# yum install -y zlib zlib-devel
# yum install -y openssl openssl-devel
5)解压Nginx
# cd /home
# tar -zxvf nginx-1.20.1.tar.gz
6)安装Nginx
# cd nginx-1.20.1
# ./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/local/nginx/nginx.pid \
--lock-path=/var/local/nginx/nginx.lock \
--error-log-path=/var/local/nginx/error.log \
--http-log-path=/var/local/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/local/nginx/client \
--http-proxy-temp-path=/var/local/nginx/proxy \
--http-fastcgi-temp-path=/var/local/nginx/fastcgi \
--http-uwsgi-temp-path=/var/local/nginx/uwsgi \
--http-scgi-temp-path=/var/local/nginx/scgi \
--add-module=/home/fastdfs-nginx-module-1.22/src
# make
# make install
7)修改Nginx配置文件
# cd /usr/local/nginx/conf
# vi nginx.conf
server {
listen 8888; # 该端口为storage.conf中的http.server_port相同
server_name localhost;
location /zhuifengren/M00 {
ngx_fastdfs_module;
}
}
8)启动 Nginx
# cd /usr/local/nginx/sbin
# ./nginx
9)打开之前上传的图片
http://192.168.1.8:8888/zhuifengren/M00/00/00/wKgBCGFOzh6AB7GRAABdyNYCZvQ876.png
可以正常打开 :)
4. 与 Springboot 整合
4.1 引入依赖
<dependency>
<groupId>com.github.tobato</groupId>
<artifactId>fastdfs-client</artifactId>
<version>1.27.2</version>
</dependency>
4.2 配置Springboot
打开 application.yml
fdfs:
connect-timeout: 300 # 连接超时时间
so-timeout: 300 # 读取超时时间
tracker-list: 192.168.1.22:22122
pool:
max-total: 100 # 连接池最大数量
max-total-per-key: 50 # 单个tracker最大连接数
max-wait-millis: 5000 # 连接耗尽最大等待时间 毫秒
4.3 文件上传
@Autowired
private FastFileStorageClient fastFileStorageClient; @Test
public void upload() throws FileNotFoundException { File file = new File("C:\\tmp\\2.jpg");
FileInputStream fileInputStream = new FileInputStream(file); StorePath storePath = fastFileStorageClient.uploadFile
(fileInputStream, file.length(), "jpg", null); System.out.println(JsonUtils.objectToJson(storePath));
}
结果:
{
"group": "zhuifengren",
"path": "M00/00/00/wKgBCGFO7cqAPEqpAAIhUeJJR1c839.jpg",
"fullPath": "zhuifengren/M00/00/00/wKgBCGFO7cqAPEqpAAIhUeJJR1c839.jpg"
}
5. 综述
今天聊了一下 分布式文件系统FastDFS在CentOS7上的安装及与Springboot的整合,希望可以对大家的工作有所帮助。
欢迎帮忙点赞、评论、转发、加关注 :)
关注追风人聊Java,每天更新Java干货。
分布式文件系统FastDFS在CentOS7上的安装及与Springboot的整合的更多相关文章
- 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署
少啰嗦,直接装 看过上一篇分布式文件系统 - FastDFS 简单了解一下的朋友应该知道,本次安装是使用目前余庆老师开源的最新 V5.05 版本,是余庆老师放在 Github 上的,和目前你能在网络上 ...
- 转载:分布式文件系统 - FastDFS 在 CentOS 下配置安装部署(2)
原文:http://blog.mayongfa.cn/193.html 一.安装 Nginx 和 fastdfs-nginx-module 安装 Nginx 请看:从零开始学 Java - CentO ...
- 转载:分布式文件系统 - FastDFS 在 CentOS 下配置安装部署(1)
原文:http://blog.mayongfa.cn/192.html 一.安装 libfastcommon 和 FastDFS 1.下载安装 libfastcommon ,这里是通过wget下载(我 ...
- 【架构设计】分布式文件系统 FastDFS的原理和安装使用
本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下: -- mo ...
- 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试
也不说废话,直接干 上一篇 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署 中安装了 FastDFS 后,并配置启动了 Tracker 和 Storage 服务,已经可以上传文件 ...
- 分布式文件系统 - FastDFS 简单了解一下
别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白进入到当时的项目组后,在开发中上传用 ...
- 分布式文件系统 - FastDFS
分布式文件系统 - FastDFS 别问我在哪里 也许我早已不是我自己,别问我在哪里,我一直在这里. 突然不知道说些什么了... 初识 FastDFS 记得那是我刚毕业后进入的第一家公司,一个技术小白 ...
- 记录:CentOS 7 安装配置分布式文件系统 FastDFS 5.1.1
CentOS 7 安装配置分布式文件系统 FastDFS 5.1.1 软件下载:http://download.csdn.net/download/qingchunwuxian1993/9897458 ...
- 分布式文件系统 FastDFS 5.0.8 & Linux CentOS 6.7 安装配置
原文:http://blog.csdn.net/wlwlwlwl015/article/details/52619851 前言 项目中用到文件服务器,有朋友推荐用fastdfs,所以就了解学习了一番, ...
随机推荐
- 使用Postfix与Dovecot收发电子邮件(物理机虚拟机之间)
邮件应用协议包括: 简单邮件传输协议(SMTP),用来发送或中转发出的电子邮件,占用tcp 25端口. 第三版邮局协议(POP3),用于将服务器上把邮件存储到本地主机,占用tcp 110端口. 第四版 ...
- DG:11.2.0.4 RAC在线duplicate恢复DG
1.环境介绍 测试环境, 在一个双节点的RAC上使用duplicate搭建DG,使用在线的方式搭建 主机 IP 操作系统 实例 db_name db_unique_name db_version 配置 ...
- luoguP1528&2329 栅栏&切蛋糕
前言 蒟弱本来是在亿万年前做二分答案专题栅栏的,由于数据水所以过掉了,后来发现有一个数据加强版,也就是本题,于是爆T了...过了有个五六个月回来填坑了...现在开O2是在最优解第一个(自豪ing 题目 ...
- Unity遮罩之Mask、RectMask2D与Sprite Mask适用场景分析
遮罩,顾名思义是一种可以掩盖其它元素的控件.常用于修改其它元素的外观,或限制元素的形状.比如ScrollView或者圆头像效果都有用到遮罩功能.本系列文章希望通过阅读UGUI源码的方式,来探究遮罩的实 ...
- COM笔记-动态链接
在实现了IUnknown之后,组件和客户之间只是一种非常松散的连接,这使用组件和客户各自可以发生变化而不会对对方造成什么影响. 下面讨论如何将组件放入到动态链接库(dll)中. 关于DLL更多内容可以 ...
- SSM:Mybatis中引入通用mapper
如果你是SSM项目引入通用mapper记得要引入hibernate中的一个hibernate-jpa-2.1-api-1.0.0.Final.jar包(注意必须要Mybatis整合Spring噢,其实 ...
- Zookeeper 序列化机制
一.到底在哪些地方需要使用序列化技术呢? 二.Zookeeper(分布式协调服务组件+存储系统) Java 序列化机制 Hadoop序列化机制 Zookeeper序列化机制 一.到底在哪些地方需要使用 ...
- Go并发控制--WaitGroup篇
目录 1. 前言 2. 使用WaitGroup控制 2.1 使用场景 2.2 信号量 1.3 WaitGroup 数据结构 2.3.1 Add () 方法 2.3.2 Wait() 2.3.3 Don ...
- html调用swf的语句
<div style="width: 1000px; height: 202px; margin-left: auto; margin-right: auto"> &l ...
- PS-头发丝抠图
[PS版本]Photoshop CS5 [主题]头发丝抠图 [操作步骤] 第一步:打开待处理图片,复制图层: 第二步:快速选择工具选择主体(也可用魔术棒用具选择背景色,然后反向): 第三步:点击&qu ...