当前位置: 首页 > 图灵资讯 > java面试题> javaMySQL面试题-FastDFS

javaMySQL面试题-FastDFS

来源:图灵教育
时间:2024-05-28 13:40:11

开源的轻量级分布式文件系统。它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。如相册网站、视频网站等。

扩展能力: 支持水平扩展,可以动态扩容;

高可用性: 一是整个文件系统的可用性,二是数据的完整和一致性;

弹性存储: 可以根据业务需要灵活地增删存储池中的资源,而不需要中断系统运行。

特性

●和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块

●文件ID由FastDFS生成,作为文件访问凭证,FastDFS不需要传统的name server

●分组存储,灵活简洁、对等结构,不存在单点

●文件不分块存储,上传的文件和OS文件系统中的文件一一对应

●中、小文件均可以很好支持,支持海量小文件存储

●支持相同内容的文件只保存一份,节约磁盘空间

●支持多块磁盘,支持单盘数据恢复

●支持在线扩容 支持主从文件

●下载文件支持多线程方式,支持断点续传

组成

●客户端(client)通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。

●跟踪器(tracker)Trackerserver作用是负载均衡和调度,通过Tracker server在文件上传时可以根据策略找到文件上传的地址。Tracker在访问上起负载均衡的作用。

●存储节点(storage)Storageserver作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统的文件系统来管理文件。存储节点中的服务器均可以随时增加或下线而不会影响线上服务。

上传

下载

断点续传

续传涉及到的文件大小MD5不会改变。续传流程与文件上传类似,先定位到源storage,完成完整或部分上传,再通过binlog进行同group内server文件同步。

配置优化

配置文件:tracker.conf 和 storage.conf

避免重复

如何避免文件重复上传 解决方案 上传成功后计算文件对应的MD5然后存入MySQL,添加文件时把文件MD5和之前存入MYSQL中的存储的信息对比 。DigestUtils.md5DigestAsHex(bytes)。