记录对 分布式文件系统 FastDFS 的学习

FastDFS 是由淘宝开发平台部资深架构师余庆开发,是一个轻量级、高性能的开源分布式文件系统( Distributed File System ),能对文件进行管理;

功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,其解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等。

 

主要原理以及介绍参考:

        https://github.com/tobato/FastDFS_Client/wiki

        https://segmentfault.com/a/1190000019341157  

        https://segmentfault.com/a/1190000017254013

安装测试参考:

        https://segmentfault.com/a/1190000020992349

        https://segmentfault.com/a/1190000007580971

        https://segmentfault.com/a/1190000017254013

 

 

自己理解总结:文绉绉的理解记不住,那就简单粗暴地简单理解吧,好比我要停车:

客户端(client)=====> 我自己就是客户端,我要到停车场停车(例如上传文件)

跟踪器(tracker)====> 相当于入口处的取卡机器(简称A系统),它帮你查找空闲的车位,给你车位信息(storage 的IP和端口),接着你(client)拿到信息之后去停车场里找对应的车位停好车,然后自己记录好这个位置(好比文件系统的组别和路径,简称全路径),方便你回来取车.

存储节点(storage)就是车位装置了,这个装置自动提供信息到A系统,这样A系统才能检测到每个位置是否空闲 ,(主要工作自动与tracher联系,提供信息,接着就是保存文件,然后提供保存路径)

 相关论坛  http://bbs.chinaunix.net/thread-1920470-1-1.html 

      http://bbs.chinaunix.net/forum-240-2.html

 

傻瓜式使用步骤:

参考 https://github.com/tobato/FastDFS_Client  

https://github.com/happyfish100/fastdfs-client-java

  

1、添加依赖

        <dependency>
            <groupId>com.github.tobato</groupId>
            <artifactId>fastdfs-client</artifactId>
            <version>1.26.5</version>
        </dependency> 

  

2、配置application.yml 


fdfs:
  so-timeout: 1501
  connect-timeout: 601
  thumb-image:
    width: 150
    height: 150
  tracker-list[0]: 192.168.68.252:22122
  serverce-port: 192.168.68.252:8888

 


3、按需注入主要接口

  1. TrackerClient - TrackerServer接口
  2. GenerateStorageClient - 一般文件存储接口 (StorageServer接口)
  3. FastFileStorageClient - 为方便项目开发集成的简单接口(StorageServer接口)
  4. AppendFileStorageClient - 支持文件续传操作的接口 (StorageServer接口)

注意,这是1.26.5版本,1.26.4版本需要引入
FastDFS-Client 1.26.4版本以前引入方式
将FastDFS-Client客户端引入本地化项目的方式非常简单,在SpringBoot项目/src/[com.xxx.主目录]/conf当中配置

/**
 * 导入FastDFS-Client组件
 * 
 * @author tobato
 *
 */
@Configuration
@Import(FdfsClientConfig.class)
// 解决jmx重复注册bean的问题
@EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
public class ComponetImport {
    // 导入依赖组件
}

 


记录一下知识点,方便日后查阅
posted @ 2019-11-15 15:42  Red9TailedFox  阅读(197)  评论(0)    收藏  举报