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

目录

  • FastDFS
    • FastDFS特点
    • 相关概念的介绍
      • Tracker Server
      • Storage Server
  • FastDFS环境搭建【CentOS 7】
    • 环境准备
    • 安装gcc和libevent
    • 上传安装包
    • 安装libfastcommon
    • 安装FastDFS
    • 拷贝配置文件到指定位置
    • tracker配置
    • storage配置
    • client测试上传文件
    • 安装fastdfs-nginx-module模块到nginx
      • 第一步
      • 第二步:进入nginx文件夹
      • 第三步 执行以下配置命令
      • 第四步
      • 第五步

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
如果可以访问的到的话,那么说明已经安装成功了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/537705.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基础入门--第十二章--多线程

多线程 12.1 进程与进程12.1.1 进程12.1.2 线程 12.2 线程的创建12.2.1 继承Thread类创建多线程12.2.2 实现Runnable接口创建多线程12.2.3 实现Callable接口创建多线程12.2.4 Thread类与Runnable接口实现多线程的对比12.2.5 后台线程 12.3 线程的生命周期及状态转换12.4 线程操…

springboot整合shiro之——拦截路径

简介Shiro: 1.基本功能 身份认证、授权、加密、会话管理 Web支持、缓存、多线程、测试、允许一个用户假装为另一个用户的身份进行访问、记住我 2. 执行过程 分为五步: Subject 用户主体:请求的发起者,即访问应用的用户 Security Manager 安…

在一台恢复测试机器上验证oracle备份有效性

一 目的 定期将生产环境oracle数据库恢复到一台测试环境数据库服务器上,以验证备份是否有效,是否能正常恢复。 二 环境 这里以恢复orcl1库为例,计划在orcl这个实例上进行恢复测试。 三 实验步骤 3.1 在目标端创建和源端一样的备份目录 ①…

公众号小程序二合一分销商城源码系统 带完整的安装代码包以及搭建教程

互联网的快速发展,微信小程序和公众号成为了企业推广与营销的重要工具。为了更好地满足企业的需求,罗峰给大家分享一款公众号小程序二合一分销商城源码系统,该系统集成了小程序和公众号的双重功能,旨在为企业提供更加便捷、高效的…

SpringMVC:搭建第一个web项目并配置视图解析器

👉需求:用spring mvc框架搭建web项目,通过配置视图解析器达到jsp页面不得直接访问,实现基本的输出“hello world”功能。👩‍💻👩‍💻👩‍💻 1 创建web项目 1…

数字IC/FPGA——锁存器/触发器/寄存器

本文主要介绍以下几点: 什么是触发器和锁存器门电路和触发器的区别什么是电平钟控触发器电平钟控触发器触发器和锁存器的区别触发器的分类方式:逻辑功能、触发方式、电路结构、存储数据原理、构成触发器的基本器件寄存器利用移位寄存器实现串并转换或并…

采集主机环境业务日志最佳实践

前言 随着信息技术的飞速发展,主机环境业务越来越复杂,产生的日志数据也呈爆炸式增长。日志数据作为记录系统运行状态、用户行为以及异常事件的重要信息,对于业务分析、故障排查和安全审计等方面具有不可替代的作用。然而,传统的…

简洁易用的记账小程序——微点记账 增加一个新功能

文章目录 背景功能介绍水印相机首页介绍所需权限水印相机功能定位切换拍摄闪光分享 总结 背景 前面已经介绍过了这个小 程 序——微点记账 最近有朋友反馈,能不能出一个水印相机的小程序?很想为小伙伴分忧,但是鉴于小 程 序也需要备 案&…

2024妈妈杯数学建模B题思路-甲骨文智能识别中原始拓片单字自动分割与识别研究

# 1 赛题 B 题 甲骨文智能识别中原始拓片单字自动分割与识别研究 甲骨文是我国目前已知的最早成熟的文字系统,它是一种刻在龟甲或 兽骨上的古老文字。甲骨文具有极其重要的研究价值,不仅对中国文明的 起源具有重要意义,也对世界文明的研究有着…

避坑指南: “低代码开发平台”怎么选看这篇!附案例参考

从事TOB行业 9 年,深入体验过 10 余款低代码产品。 下面基于我的个人认知给大家讲一讲: 低代码开发平台该如何选?从哪些维度可以判断低代码平台适合你的企业?多家企业采用低代码平台的实践案例! 目前市面上有超过 2…

大数据dolphinscheduler 本地容器化安装

Minio 容器安装 docker run -p 9000:9000 -p 9090:9090 --name minio -d -e "MINIO_ACCESS_KEYminioadmin" -e "MINIO_SECRET_KEYminioadmin" -v D:\SF\DOCKER\minio\data:/data -v D:\SF\DOCKER\minio\config:/root/.minio minio/minio server /da…

LeetCode---392周赛

题目列表 3105. 最长的严格递增或递减子数组 3106. 满足距离约束且字典序最小的字符串 3107. 使数组中位数等于 K 的最少操作数 3108. 带权图里旅途的最小代价 一、最长的严格递增或递减子数组 按照题目要求进行模拟即可,这里提供两者思路: 1、两次…

AI赋能校园管理,打造平安智慧校园解决方案

背景: 2020年教育部办公厅印发《教育系统安全专项整治三年行动实施方案》,文中要求,学校在所辖范围内组织开展安全专项整治三年行动,健全完善安全责任体系,建立风险管控和隐患治理的安全防控体系,开展消防等…

tRPC架构设计简单理解

互联网发展早期,业务场景差异大,试错迭代速度很快。这导致其后台服务使用的语言技术栈、开发框架、通信协议、服务治理系统、运维平台等或多或少存在差异。 业务发展到一定阶段后,跨业务合作越来越多,组织架构调整也愈发频繁。技…

局域网管理软件哪个好?局域网电脑管理系统实践案例

之前有一个公司案例,是这样的: 公司名称:智慧科技有限公司 背景: 智慧科技有限公司是一家拥有数百名员工的中型企业,随着业务的快速发展,公司面临着网络管理上的挑战。 员工在日常工作中需要频繁地访问…

旧版本jquery升级新版本后如何处理兼容性问题

前言 最近项目在漏洞扫描过程中发现现在的jquery版本受多个跨站点脚本漏洞影响,需要升级jquery版本。 1、首先下载高版本的jquery,我这里升级的是3.6.0 2、对应的bootstrap版本也要升级,这里升级的是3.3.7 本来以为替换完这两个文件后&#…

【SpringBoot】-- 使用minio对象存储服务实现上传图片

目录 一、安装minio 拉取镜像 启动 查看 进入登录页面 创建bucket 二、安装miniomc 三、代码 application.yml MinioUtil Controller 四、拓展 以下基于云服务和docker使用minio服务 一、安装minio Minio 是一个开源的对象存储服务器。它允许用户在私有云环境中建…

全闪存储阵列利用 U.2NVMe技术实现高性能体验

U.2 NVMe全闪存储阵列日益成为全闪存储的主流,以Infortrend普安科技最新推出GS 5000U为例。作为GS 5000U系列首发机型,GS 5024UE全面升级,搭载第五代IntelXeon处理器,支持PCIe 5.0、NVMe-OF、100GbE,带宽性能比之前的旗…

cPanel如何远程MySQL

本周有一个客户,购买Hostease的HK Basic Linux虚拟主机,询问我们的在线客服,主机是否支持远程访问MySQL及如何配置的问题。我们为用户提供教程,用户很快完成了设置。在此,我们分享这个操作教程,希望可以对您…

[2024]最新激活Navicat教程附激活码

PS:在开始前,建议先断开本地网络!!!建议先断开本地网络!!!建议先断开本地网络!!! 1 安装 1.1 点击下一步 1.2 许可证选择“我同意”&#xff0c…