FastDFS详解

前言

由于项目的原因需要使用到存储图片的所以经过商讨使用FastDFS来存储图片


什么是FastDFS

FastDFS是一个分布式的文件系统,首先听到之句话你可能有点懵,我们一步步的拆分这句话,什么是文件系统,安装一定的规则和格式存放图片,则称之为文件系统,分布式的就是把图片或者是文件放在多台服务器上,所以这句话的意思就是存储图片的多个地方


在哪里用

淘宝上的照片存储,一些电商项目的使用,用来存储图片


从哪里来

最开始的时候我们存储图片是相当麻烦的,但是FastDFs是淘宝的某个技术人员开发出来的,目的就是为了解决淘宝存放图片问题
他的特点就是:冗余备份:就是当你一个文件丢失可以及时补上去。 负载均衡:表示使用哪个。 扩容:就是存放图片的空间不够了,那么我们就行扩容,扩容使用到了分组的概念,下面的架构图我会讲,这几个特性在架构图那篇区域体现了


安装步骤

1我按照文档安装成功了,但是我感觉只是成功了哈哈哈,站在巨人的肩膀上哦
https://blog.csdn.net/kisscatforever/article/details/73187795


架构图分析

这是FastDFS的架构图,主要分为3个角色,一个是客户端,一个是tracker跟踪器,另一个是storager存储。可能你看这个图有点看不懂,哈哈哈,我先来讲讲这个图,嘿嘿。

这里写图片描述

首先这三个的角色之间的流程
1Storager会定期的告诉Tracker自己有存储空间,是否还可以继续存放图片,自己的是不是正常运行,有没有蹦
2当client需要存放图片的时候,她会问Tracker:Storager是否有存储的空间啊,然后tracker就会看Storager是否有空间,如果有空间,则会告诉Client具体的ip和端口号
3Client那这Ip和端口号去找Storager。然后我们就可以存储图片了哦、哈哈哈


接下来说一下Storager组之间的概念还有组内部的概念
组与组之间存放的数据是不一样的,但是组内部存放的数据都是一样的,为什么呢??因为我们实行了冗余备份功能,而我们组与组之间实现的是扩容功能,但是我们的存储空间不够的时候,我们再分一个组出来就体现了扩容的概念


从上面所说的,我们可以看出来Tracker的功能其实就是保存Storager状态,其实有点像Dubbo的一个注册中心的感觉。哈哈


上面是一个复杂的架构图可能有多台服务器,如果想实现一台服务器,就是下面的图片了
这里写图片描述

图片上传的服务器的时候会生成一个id,会把这个id返回给客户端,然后客户端会根据id索引找到图片或文件信息


上传成功之后显示

当我们上传成功之后客户端显示的地址,group1表示我们的storager中的组,M00表示我们的文件目录,02,44表示是在M00下的文件,他们是按照顺序进行数字的递增,后面应该就是id了
这里写图片描述


代码

1.创建一个配置文件,文件的名字起什么都可以,然后内容是关于Tracker服务器的地址

创建一个fast_client.xml文件,该文件在web下的resource文件下面的config有一个配置文件,该配置文件有我们fastdfs的服务器地址

这里写图片描述

//图片的服务器

tracker_server=192.168.22.64:22122

2 全局加载配置文件

既然写了配置文件肯定要用对吧,所以我们需要吧配置文件进行加载,初始化

ClientGlobal.init("这里面是一个路径,用于找到我们的fast_clientxml");

3创建一个TrackerClient对象

找个对象帮我们完成任务

TrackerClient TrackerClient = new TrackerClient()

4通过TrackerClient获得一个Trackerserver对象

TrackerServer trackerServer = trackerClient.getConnection()

5创建一个个StoragerClient的引用,可以是null

StorageServer storageServer = null;

6创建一个StoragerClient,参数使用TrackerServer和StoragerServer

StorageClient storageClient = new StorageClient (trackerServer , StorageServer)

7使用StorageClient上传文件
String[] strings= new StorageClient.upload_file(“上传文件的全路径”,”格式”,”图片的原信息”)


与FastDFs相关联内容

FastDFS只是帮助我们存储图片,并没有起到帮助我们使用http请求找到图片 ,所以这时候我们需要使用到nginx。下面是我写的nginx的博客
https://blog.csdn.net/dtttyc/article/details/80530586


宏观总结思维导图

这里写图片描述


总结

芬芬happy children ‘s day 节日快乐哦~ 棒棒的啊。哈哈哈哈. 送芬芬的节日礼物,实在吧~

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王雪芬-Judy领袖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值