博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fastdfs 图片服务器 使用java端作为客户端上传图片 / 【FastDFS专题】fastdfs使用实战(概念篇)
阅读量:4293 次
发布时间:2019-05-27

本文共 1904 字,大约阅读时间需要 6 分钟。

BeJavaGod 2017-09-27 09:24

之前有说道搭建fastdfs作为图片服务器,但是没有说明如何真正在代码里调用,那么今天大致讲一下,如何使用java客户端进行上传

首先你得要有一个客户端,导入到eclipse中即可

fastdfs 图片服务器 使用java端作为客户端上传图片

git地址如下:

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

JS:

fastdfs 图片服务器 使用java端作为客户端上传图片

html:

fastdfs 图片服务器 使用java端作为客户端上传图片

controller:

fastdfs 图片服务器 使用java端作为客户端上传图片

service:

fastdfs 图片服务器 使用java端作为客户端上传图片

最后配置:

fastdfs 图片服务器 使用java端作为客户端上传图片

tracker_server=192.168.1.188:22122

上传效果:

fastdfs 图片服务器 使用java端作为客户端上传图片

===========================================================

1、FastDFS是什么

    FastDFS是一个开源的轻量级分布式文件系统,纯C实现,支持Linux、FreeBSD等UNIX系统,FastDFS可以看做是基于文件的key value pair存储系统。

    FastDFS有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
 
2、FastDFS的特点

    分组存储,灵活简洁

    对等结构,不存在单点 
    文件ID由FastDFS生成,作为文件访问凭证。

    FastDFS不需要传统的name server
    和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块
    大、中、小文件均可以很好支持,支持海量小文件存储

    支持相同文件内容只保存一份,节省存储空间

    存储服务器上可以保存文件附加属性
    支持多块磁盘,支持单盘数据恢复
 
3、FastDFS架构图如下:

    跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

    为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

    FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。
 
4、FastDFS实现过程

上传文件交互过程:


  1. Client询问Tracker server上传到的Storage server;
  2. Tracker server返回一台可用的Storage server,返回的数据为该Storage server的IP地址和端口;
  3. Client直接和该Storage server建立连接,进行文件上传,Storage server返回新生成的文件ID,文件上传结束。

下载文件交互过程:


  1. Client询问Tracker server可以下载指定文件的Storage server,参数为文件ID(包含组名和文件名);
  2. Tracker server返回一台可用的Storage server;
  3. Client直接和该Storage server建立连接,完成文件下载。

 
5、同步机制

    同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;

    文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;

    源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;

上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。

来自

 

本文出自 “” 博客,请务必保留此出处

转载地址:http://buzws.baihongyu.com/

你可能感兴趣的文章
设计模式13_享元模式
查看>>
设计模式14_组合结构
查看>>
设计模式15_模板
查看>>
设计模式16_策略模式
查看>>
海龟交易法则01_玩风险的交易者
查看>>
海龟交易法则02_揭秘海龟思维
查看>>
海龟交易法则03_海龟的培训
查看>>
python笔记01_高级特性和函数式编程
查看>>
python笔记02_面向对象编程和面向对象高级编程
查看>>
海龟交易法则04_像海龟一样思考
查看>>
海龟交易法则05_掌握优势
查看>>
python笔记03_IO编程
查看>>
python笔记04_多进程
查看>>
python笔记05_多线程
查看>>
python笔记06_进程vs线程
查看>>
设计模式17_命令模式
查看>>
设计模式18_责任链
查看>>
CTA策略01_dualThrust
查看>>
CTA策略02_boll
查看>>
vnpy通过jqdatasdk初始化实时数据及历史数据下载
查看>>