【Java x 分布式】FastDFS初学II-概念、使用、浏览器兼容性

本文深入解析FastDFS,一款用C语言编写的开源分布式文件系统。详细介绍其架构,包括追踪服务器(Tracker)和存储服务器(Storage)的角色及工作流程。并提供了如何使用FastDFS上传图片的具体步骤,以及解决浏览器兼容性问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*What's the FastDFS?


FastDFS是用c语言编写的一款开源的分布式文件系统。

FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标

使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

 

 

*Architecture of the FastDFS


FastDFS架构包括 Tracker server(以下简称 T ) 和 Storage server(以下简称 S ) ,服务器请求 T 进行文件上传、下载,通过T调度最终由 S 完成文件上传和下载。

T 的作用是负载均衡和调度,通过 T 在文件上传时可以根据一些策略找到 S 提供文件上传服务。可以将 T 称为追踪服务器或调度服务器。

S 的作用是文件存储,客户端上传的文件最终存储到 S 上, S 没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。可以将 S 称为存储服务器

Storage中每个卷里面的Storager都是一样的(冗余备份)

Redis不同的是,这里的 T/S 没有主从关系

 

*Process of file upload/download


U:

 

D:

 

*How to Use to upload picture


使用前提:

  • 把FastDFS提供的jar包添加到工程中

In Controller:

接收一个MultipartFile picFile数据

返回一个json数据

 

In Service:

  • 初始化全局配置。加载一个配置文件

ClientGlobal.init("配置文件(client.conf-->配置trackerserver的地址)的路径")

  • 创建一个TrackerClient对象。

TrackerClient trackerClient = new TrackerClient();

  • 创建一个TrackerServer对象。

TrackerServer trackerServer = TrackerClient.getConnection();

  • 声明一个StorageServer对象,null。

StorageSErver torageServer = null;

  • 获得StorageClient对象。

StorageClient storageClient = new StorageClient(tackerServer, storageServer);

  • 直接调用StorageClient对象方法上传文件即可。

String[] strings = storageClient.upload(local_fliename(文件全路径), file_ext_name(扩展名), meta_list(给图片加上属性,可以是null))

返回的strings第一个是图片所在的storage组名称,第二个是图片的访问路径(服务器地址+strings[0]+strings[1])

 

*How to resolve browser's compatibility


有一些浏览器不支持返回json数据

所以在Controller需要将Service传来的pojo对象转换成String数据,再返回给客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值