JAVA:SSM整合\分布式文件系统\fastDFS

本文介绍了FastDFS分布式文件系统的概念、工作流程及优缺点,并详细阐述了在JAVA项目中如何整合FastDFS,包括依赖配置、客户端使用、SpringMVC的多媒体解析器设置以及上传文件的实现过程。
摘要由CSDN通过智能技术生成

职位上的调动导致自己很长一段时间没有做总结了,忙里偷闲来说点什么吧

关于这个做总结的事情,想了很久还是选择抛弃一些,毕竟所有的都记录下来的话所花费的时间实在太长了,所以之后会选择一些技术点或者感觉值得写下来的

先来说一下这个fastDFS分布式文件系统吧

什么是fastDFS

  • fastDFS是一个底层使用C语言编写并且开源的分布式文件系统

 作用

  •  可以统一管理存储服务器集群,统一管理存储读取文件

 fastDFS工作流程(原理)

  •  fastDFS一共分为三部分,client客户端(项目),trackerServer管理端,storageServer存储端
  • client客户端(项目):使用fastDFS的jar包中的api来存储文件,调用fastDFS
  • tarckerServer管理端:管理storageServer存储端集群,管理端如果死掉存储段无法使用,所有管理端都是做双击热备,就是一台主机,一台备机,他们之间做心跳检测机制,平时主机工作,备机向主机发送ping命令,主机接收到后返回pong命令,如果一段时间内没有返回,备机会认为主机死掉会代替主机工作,这样可以保证管理端的高可用,管理端还有负载均衡的功能,可以平均分配请求给存储端,这样就可以承载高并发的存储需求
  • storageServer存储端:他负责具体存储文件,也是两台为一组,一台主机一台备机,之间双机热备,做心跳检测,保证存储端的高可用,存储端做冗余备份,就是我们向存储端主机存储内容,主机会向备机发送内容,主机和备机存储的内容是一样的,所以主机即使坏掉,备机也有同样的内容可以使用,这种叫做容灾配置,存储端理论上存储容量是无限的,因为两台为一组机器可以无限扩展
  • 流程:我们项目存储的时候先调用管理端,管理端会给我们分配一台存储端的IP地址和端口,我们向存储端机器存储文件,存储端会给我们返回存储后的地址以及文件名,文件名会自动被存储端重命名,防止文件重名

优缺点:

优点:

  • 管理端有负载均衡的功能,可以承载高并发的存储需求
  • 存储端可以无限扩展,理论上存储容量是无限的,扩展性好
  • 存储端和管理端都使用的心跳检测机制,保证了服务器的高可用
  • 存储端做了冗余存储,所以即使有机器坏掉也不会丢数据,容灾性好

缺点:

  • fastDFS结构复杂,会使项目中的复杂度变高,并且搭建fastDFS会使用很多服务器

这就开始说项目中的运用吧

添加fastDFS的依赖

<dependency>
        <groupId>org.csource.fastdfs</groupId>
        <artifactId>fastdfs</artifactId>
        <version>1.2</version>
</dependency>

由于fastDFS客户端的jar包并没有在中央仓库中,所以需要手动下载jar包到本地仓库中

mvn install:install-file -DgroupId=org.csource.fastdfs -DartifactId=fastdfs  -Dversion=1.2 -Dpackaging=jar -Dfile=d:\setup\fastdfs_client_v1.20.jar

配置fastDFS官方提供的配置文件fdfs_client.conf

# connect timeout in seconds
# default value is 30s
connect_timeout=30

# network
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值