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