当前位置: 首页 > news >正文

centos安装FastDFS,集成到SpringBoot中

前言

本教程采用centos7 实测 安装fastdfs,每一步都存在截图,安装不成功你就@我
最关键的是采用springboot 集成 fastdfs,上传保存文件信息

小序

FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件meta data是文件属性列表,可以包含多个键值对。

准备所需资源

下载地址 : https://sourceforge.net/projects/fastdfs/files/
如果该链接打不开 文章下面有我上传的有百度云盘 可以进行下载
哪位大佬如果积分充足 可以赏赐一些 

链接: 资源下载地址

在这里插入图片描述

安装fastdfs

tar -zxvf tar zxf FastDFS_v5.05.tar.gz

在这里插入图片描述

tar zxf libfastcommon-1.0.7.tar.gz 
cd libfastcommon-master/
./make.sh
./make.sh install

在这里插入图片描述
在这里插入图片描述
可以看到在/usr/lib目录中已经存在
在这里插入图片描述
然后回到FastDFS编译的目录进行

./make.sh
./make.sh install

在这里插入图片描述
在/etc/fdfs路径下会生成三个配置文件
在这里插入图片描述

使用命令进行复制cp client.conf.sample client.conf
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf

在这里插入图片描述
/usr/lib目录下的文件
在这里插入图片描述
/usr/lib64下的文件
在这里插入图片描述
/usr/bin下的文件
在这里插入图片描述
/etc/fdfs下的文件
在这里插入图片描述

配置Tracker

在配置Tracker之前,首先需要创建Tracker服务器的文件路径,即用于存储Tracker的数据文件和日志文件等,我这里选择在/opt目录下创建一个fastdfs_tracker目录用于存放Tracker服务器的相关文件:mkdir /opt/fastdfs_tracker 

在这里插入图片描述

在这里插入图片描述

i 编辑
esc :wq 保存 退出disabled=false #启用配置文件(默认启用)
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
base_path=/opt/fastdfs_tracker #设置tracker的数据文件和日志目录
http.server_port=6666 #设置http端口号,默认为8080
启动命令: /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start

启动成功之后 会生成logs和data两个文件夹
在这里插入图片描述

配置storage

步骤基本与配置Tracker一致,首先是创建Storage服务器的文件目录,需要注意的是同Tracker相比我多建了一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件
mkdir /opt/fastdfs_storage
mkdir /opt/fastdfs_storage_data

在这里插入图片描述
接下来修改/etc/fdfs目录下的storage.conf配置文件,打开文件后依次做以下修改
在这里插入图片描述

i 编辑
esc :wq 保存退出disabled=false #启用配置文件(默认启用)
group_name=group1 #组名,根据实际情况修改
port=23000 #设置storage的端口号,默认是23000,同一个组的storage端口号必须一致
base_path=/opt/fastdfs_storage #设置storage数据文件和日志目录
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/opt/fastdfs_storage_data #实际文件存储路径
tracker_server=192.168.0.199:22122 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功(此处的ip是我的CentOS虚拟机ip)
http.server_port=8888 #设置 http 端口号

在这里插入图片描述
启动成功之后 会生成logs和data两个文件夹
在这里插入图片描述

测试

测试时需要设置客户端的配置文件,编辑/etc/fdfs目录下的client.conf 文件,打开文件后依次做以下修改:

base_path=/opt/fastdfs_tracker #tracker服务器文件路径
tracker_server=192.168.0.199:22122 #tracker服务器IP地址和端口号
http.tracker_server_port=6666 # tracker 服务器的 http 端口号,必须和tracker的设置对应起来

在这里插入图片描述
把该图片传到/opt目录下
在这里插入图片描述

上传图片进行测试:  /usr/bin/fdfs_upload_file  /etc/fdfs/client.conf /opt/1.jpg

在这里插入图片描述
这就表示我们的文件已经上传成功了,当文件存储到某个子目录后,即认为该文件存储成功,接下来会为该文件生成一个文件名,文件名由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成
在这里插入图片描述
在这里插入图片描述

此时发现并不能访问,因为FastDFS目前已不支持http协议,4.0.5版本开始移除了自带的HTTP支持(因为之前自带的HTTP服务较为简单,无法提供负载均衡等高性能服务),所以提供了nginx上使用FastDFS的模块fastdfs-nginx-module,下载地址如下:https://github.com/happyfish100/fastdfs-nginx-module,这样做最大的好处就是提供了HTTP服务并且解决了group中storage服务器的同步延迟问题,接下来就具体记录一下fastdfs-nginx-module的安装配置过程

fastdfs-nginx-module

tar zxf fastdfs-nginx-module_v1.16.tar.gz
cd fastdfs-nginx-module/src
vim config

在这里插入图片描述
本机因为之前已经安装过nginx,直接跳过安装,进行整合编译

centos7中安装nginx步骤1、安装nginx编译环境
# yum -y install gcc-c++
# yum -y install pcre-devel openssl openssl-devel2、安装之前检查是否有安装过nginx
find -name nginx3、如果有安装卸载
yum remove nginx4、选择你想要安装的目录,我选择的是/usr/local下的目录安装
cd /usr/local5、然后下载最新的nginx
wget http://nginx.org/download/nginx-1.12.0.tar.gz6、解压nginx包
tar -zxvf nginx-1.12.0.tar.gz7、配置nginx安装信息解压之后进入nginx安装目录后,执行以下语句:
./configure --prefix=/home/admin/Desktop/yzx/nginx/nginx-1.12.0 --with-http_ssl_module --sbin-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/sbin/nginx --conf-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/conf/nginx.conf
注:–prefix 参数:指定安装目录;–with-http_ssl_module:编译的时候启用SSL支持8、然后编译、安装
make
make install9、使用命令查看nginx的安装路径
whereis nginx10、给nginx目录权限
chmod -R 777 /home/admin/Desktop/yzx/nginx/nginx-1.12.0 cd /home/admin/Desktop/yzx/nginx/nginx-1.12.0/confvim nginx.conf
第一行:
user root;
进入cd /usr/local/nginx/sbin/启动nginx./nginx,然后查看nginx服务是否成功netstat -ntlp
然后根据ip进行访问即可:

添加fastdfs模块 重新编译
在这里插入图片描述

./configure --prefix=/home/admin/Desktop/yzx/nginx/nginx-1.12.0 --with-http_ssl_module --sbin-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/sbin/nginx --conf-path=/home/admin/Desktop/yzx/nginx/nginx-1.12.0/conf/nginx.conf --add-module=/home/admin/Desktop/yzx/fastdfs/fastdfs-nginx-module/src/

在这里插入图片描述

make
make install

./nginx -V
查看编译的版本情况信息
在这里插入图片描述

cd /etc/fdfs
编辑配置文件
vim mod_fastdfs.conf需要修改文件中四处内容,这四处内容的含义:
connect_timeout=20 #连接超时时间,单位秒
tracker_server=192.168.0.199:22122 #tracker服务结点
url_have_group_name = true #URL中是否包含group名称
store_path0=/opt/fastdfs_storage_data # storage服务结点的存储位置,与配置storage结点一致

提供FastDFS需要的HTTP配置文件
复制FastDFS安装包中的两个配置文件(http.conf和mime.types)到/etc/fdfs目录中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在nginx.conf配置文件中添加该server
在这里插入图片描述
nginx 启动成功(这个是把nginx做成启动服务了 使用systemctl start nginx)
在这里插入图片描述
输入端口访问不成功 感觉是防火墙端口问题
在这里插入图片描述
查看防火墙允许访问的端口列表
在这里插入图片描述

一、开放端口用 --add-port
firewall-cmd --permanent --add-port=8888/tcp二、移除端口用 --remove-port
firewall-cmd --permanent --remove-port=8888/tcp三、刷新规则用 --reload
firewall-cmd --reload四、 查看防火墙开放端口
firewall-cmd --list-all

在这里插入图片描述
至此 浏览器已经可以看到fastdfs的文件

资源列表

链接:https://pan.baidu.com/s/1M7YTOHMeTW_cF5j5dvPsZg 
提取码:1314

搭建SpringBoot工程

相关文章:

centos安装FastDFS,集成到SpringBoot中

前言 本教程采用centos7 实测 安装fastdfs,每一步都存在截图,安装不成功你就我 最关键的是采用springboot 集成 fastdfs,上传保存文件信息 小序 FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括&…...

看透react源码之感受react的进化

写在前面 网上有许多关于react源码解读的文章,其中有很多都只是单纯贴源码,罗列变量名。其实大家都知道这个英文怎么读,直译也大概知道意思,但是这个英文在react中起到什么作用,并没有说的很通俗明白。 对于刚刚接触…...

【最优化理论】线性规划

文章目录什么是线性规划(Linear Programming,LP)?线性规划的标准形式非标准形LP模型转化为标准形LP模型基本概念基本解&基矩阵&基变量&非基变量基本可行解&可行基矩阵&非退化的基本可行解&退化的基本可行…...

数据库测试的认知和分类

数据库测试的认知和分类 目录:导读 系统测试 集成测试 单元测试 功能测试 数据库性能 性能优化分4部分 安全测试 现在的软件系统,尤其是业务应用系统,后台都连接着一个数据库。数据库中存储了大量的数据,数据库的设计是否…...

MQ中间件概念一览

一、概述 1. 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力 2. 消息服务中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由…...

爱尔兰公司注册要求及条件

简介: 爱尔兰是一个高度发达的资本主义国家,也是欧盟、经济合作与发展组织、世界贸易组织和联合国的成员国。并且也是世界经济发展速度快的国家之一,因经济发达赢得了“欧洲小虎”的美誉。总体来看,爱经济发展势头趋稳&#xff0c…...

Java中如何打印对象内存地址?

先看一个简单的程序,一般我们打印对象,大部分是下面的情况,可能会重写下toString()方法,这个另说 Frolan frolan new Frolan(); System.out.println(frolan);// 输出结果 com.test.admin.entity.Frolan2b80d80f这个结果其实是调…...

CF1707E Replace

题目描述 给定一个长为 nnn 的序列 a1,…,ana_1,\ldots,a_na1​,…,an​,其中对于任意的 iii 满足 1≤ai≤n1 \leq a_i \leq n1≤ai​≤n。 定义一个二元组函数如下: f((l,r))(min⁡{al,…,ar},max⁡{al,…,ar})(l≤r)f((l,r))(\min\{a_l,\ldots,a_r\}…...

【Hello Linux】Linux工具介绍 (make/makefile git)

作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍Linux的常用工具make/makefile git Linux项目自动化构建工具 – make/Makefile 背景 会不会写Makefile 从侧面说明了一个人是否具…...

享元模式flyweight

享元模式属于结构型模式。享元模式是池技术的重要实现方式,它可以减少重复对象的创建,使用缓存来共享对象,从而降低内存的使用。细粒度的对象其状态可以分为两种:内部状态和外部状态。应用场景系统存在大量相似或相同的对象。外部…...

Pulsar

一、简介Apache Pulsar是Apache软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、…...

项目介绍 + 定长内存池设计及实现

你好,我是安然无虞。 文章目录项目介绍当前项目做的是什么?技术栈内存池是什么?池化技术内存池内存池主要解决的问题malloc定长内存池学习目的定长内存池设计项目介绍 当前项目做的是什么? 这个项目是实现一个高并发的内存池, 它的原型是 Google 的一个开源项…...

Linux--线程安全的单例模式--自旋锁--0211

1. 线程安全的单例模式 1.1 什么是单例模式 某些类, 只应该具有一个对象(实例), 就称之为单例. 1.1.1 懒汉方式实现单例模式 以上篇博文的线程池为例 Liunx--线程池的实现--0208 09_Gosolo!的博客-CSDN博客 实现懒汉模式首先要先将构造函数私有化,…...

图文解说S参数(进阶篇)

S参数是RF工程师/SI工程师必须掌握的内容,业界已有多位大师写过关于S参数的文章,即便如此,在相关领域打滚多年的人, 可能还是会被一些问题困扰着。你懂S参数吗? 图文解说S参数(基础篇) 请继续往下看...台湾…...

Sentinel源码阅读

基础介绍 Sentinel 的使用可以分为两个部分: 核心库(Java 客户端):不依赖任何框架/库,能够运行于 Java 8 及以上的版本的运行时环境,同时对 Dubbo / Spring Cloud 等框架也有较好的支持(见 主流框架适配&…...

2023年浙江食品安全管理员考试真题题库及答案

百分百题库提供食品安全管理员考试试题、食品安全管理员考试预测题、食品安全管理员考试真题、食品安全管理员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、判断题 7.(重点)《餐饮服务食品安全…...

Webstorm 代码没有提示,uniapp 标签报错

问题 项目是用脚手架创建的: vue create -p dcloudio/uni-preset-vue my-project 打开之后,添加view标签警告报错的。代码也没有提示,按官方说法:CLI 工程默认带了 uni-app 语法提示和 5App 语法提示。 但是我这里就是有问题。…...

MySQL-Innodb引擎事务原理

文章目录1.事务介绍2 事务特性3. 事务的实现原理4 redo log 保证持久性5 undo log 保证原子性6 MVCC 概念6.1 隐藏字段6.2 版本链6.3 ReadView6.3.1readview 版本控制规则7 隔离性 实现7.2 隔离性- REPEATABLE READ 可重复读下8 一致性1.事务介绍 事务是一组操作的集合&#xf…...

Linux操作系统学习(了解环境变量)

文章目录环境变量初识除了上述介绍的PATH&#xff0c;还有一些常见的环境变量如&#xff1a;查看环境变量方法 &#xff1a;环境变量的基本概念&#xff1a;本地变量&#xff1a;环境变量初识 环境变量解释起来比较抽象&#xff0c;先看示例&#xff1a; #include <stdio.…...

数据分析思维(六)|循环/闭环思维

循环/闭环思维 1、概念 在很多的分析场景下&#xff0c;我们需要按照一套流程反复分析&#xff0c;而不是进行一次性的分析&#xff0c;也就是说这套流程的结果会成为该流程的新一次输入&#xff0c;从而形成一个闭环&#xff0c;此时的分析思维我们称之为循环/闭环思维。 常…...

LaTeX公式一键转Word:告别繁琐复制,提升学术写作效率

LaTeX公式一键转Word&#xff1a;告别繁琐复制&#xff0c;提升学术写作效率 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 还在为将网页上的数…...

学生党福音:用最便宜的TT马达和STM32F103C8T6,我焊出了能遥控的平衡小车

低成本DIY平衡小车&#xff1a;TT马达与STM32的极致性价比方案 当我在宿舍里第一次看到那辆价值近千元的商业平衡小车时&#xff0c;脑海中立刻浮现出一个问题&#xff1a;能不能用更便宜的材料实现类似功能&#xff1f;作为一名预算有限的学生&#xff0c;我开始探索如何用最…...

GE模型加载卸载API

模型加载和卸载 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlow…...

OTFS系统中结构化稀疏表示与GPU优化实践

1. OTFS系统与结构化稀疏表示概述 在无线通信领域&#xff0c;正交时频空间(OTFS)调制技术因其在高移动性场景下的卓越性能而备受关注。与传统OFDM系统不同&#xff0c;OTFS将信息符号调制在时延-多普勒(DD)域&#xff0c;能够更好地抵抗多普勒扩展和时延扩展的影响。然而&…...

前端工程化:代码质量监控实战指南

前端工程化&#xff1a;代码质量监控实战指南 前言 代码质量监控是保障项目长期健康发展的关键。一个好的代码质量监控体系能帮助团队及时发现潜在问题&#xff0c;防止技术债务积累。今天我就来给大家讲讲如何建立一套完整的代码质量监控体系。 为什么代码质量监控如此重要 代…...

ADAS环视系统与视频解码器关键技术解析

1. ADAS环视系统技术解析1.1 汽车安全技术演进路径从ABS防抱死系统到安全气囊&#xff0c;再到如今的ADAS&#xff08;高级驾驶辅助系统&#xff09;&#xff0c;汽车安全技术在过去二十年经历了三次重大迭代。德国车企在这个领域始终保持着技术领先&#xff0c;最早实现了车道…...

RT-Thread开发实战(8)— 基于SPI驱动TFTLCD实现动态数据可视化

1. 从零开始玩转SPI驱动TFTLCD 第一次用RT-Thread驱动TFTLCD屏幕时&#xff0c;我盯着那堆密密麻麻的引脚直发懵。后来才发现&#xff0c;只要搞明白SPI通信和屏幕驱动芯片的关系&#xff0c;这事儿其实比想象中简单多了。我们这次要对付的是ST7789V2这款驱动芯片&#xff0c;它…...

oh-my-opencode:AI编程操作系统,智能体编排与哈希锚定编辑实战

1. 项目概述&#xff1a;一个为AI编程而生的“操作系统”如果你和我一样&#xff0c;在过去一年里深度使用过Claude Code、Cursor或者各种开源的AI编程工具&#xff0c;那你一定经历过这种痛苦&#xff1a;模型选型让人眼花缭乱&#xff0c;配置流程复杂到让人想放弃&#xff0…...

企者不立,跨者不行,在 SAP ABAP 开发里修一颗不踮脚、不跨步、不自矜的工程心

老子这句话放进 SAP ABAP 开发现场里,不是要我们把工程做得玄乎,也不是劝开发者不要进取。它讲的是一种很朴素的稳定性智慧,凡是靠踮脚维持的高度,站不久,凡是靠大跨步抢出来的进度,走不远,凡是只相信自己眼前判断的技术方案,容易看不清系统全貌,凡是过度相信自己经验…...

ComfyUI MixLab节点库:提升AI图像工作流控制与自动化能力

1. 项目概述&#xff1a;一个为ComfyUI注入新活力的节点库如果你和我一样&#xff0c;是个深度依赖ComfyUI进行AI图像工作流搭建的创作者&#xff0c;那你一定经历过这样的时刻&#xff1a;面对一个复杂的创意想法&#xff0c;却发现官方节点或者现有社区节点库的功能组合起来总…...