1、背景
FastDFS是一款开源的、分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发。该开源项目的主页是 http://code.google.com/p/fastdfs 。可以通过fastdfs.sourceforge.net 下载。FastDFS论坛是 http://www.csource.org ,目前是指向 ChinaUnix 开源项目孵化平台的一个板块 FastDFS,网址为 bbs.chinaunix.net/forum-240-1.html 。
2、上传流程
我们可以通过 FastDFS 对文件的上传过程,来初步了解 FastDFS 的基本架构。首先客户端 client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server 的指定端口来实现的,Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server ,然后将这个Storage Server 的地址等信息返回给 client,然后 client 再通过这些信息连接到这台 Storage Server,将要上传的文件传送到给 Storage Server上。
3、架构简析
以上这段粗糙简单的描述,基本理清了 FastDFS 的上传过程。我们可以知道,FastDFS 是包括一组 Tracker Server 和 Storage Server 的。Tracker Server 与 Storage Server 之间不直接通信,其基本的信息由配置文件在系统启动加载时获知。多台 Tracker Server 之间保证了 Tracker 的分布式,Tracker Server 之间是对等的,防止了单点故障。 Storage Server 是分成多个 Group,每个 Group 中的Storage 都是互相备份的,也就是说,如果 Group1 有 Storage1、Storage2、Storage3,其容量分别是100GB、100GB、100GB,那么 Group1 的存储能力是 100GB,而不是 300GB,这就是互相备份的意思。进一步说,整个 Group 的存储能力由该组中该储能力最小的 Storage 决定。多个 Group 之间的存储方式,可以采用 round robin(轮训)、load balanced(负载均衡)或指定 Group 的方式。另一点相对于MS(Master-Slave)模式的优势,就是 Tracker Server 与 Master 是决然不同的,不仅 master 有上面可能提到的单点故障问题,而且 client 与 master 之间可能会出现瓶颈。但 FastDFS 架构中,Tracker Server 不会称为系统瓶颈,数据最终是与一个 available 的 Storage Server 进行传输的。
4、总结
简单总结一下,FastDFS的特点包括(1)高可靠性:无单点故障;(2)高吞吐量:只要 Group 足够多,数据流量是足够分散的。
相关推荐
FastDFS是一款轻量级的开源分布式文件系统,专为解决大容量文件存储和高并发访问问题而设计。它实现了软件RAID功能,允许使用廉价的IDE硬盘进行存储,并且支持存储服务器在线扩容,以适应不断增长的数据存储需求。...
fastdfs_client; fastdfs_client_java._v1.25.tar.gz; fastdfs_client_v1.20.jar; FastDFS_Java_Doc_v1.20.tar.gz;...FASTdfs-入门-1.0.docx; 分布式存储 CentOS6.5虚拟机环境搭建FastDFS-5.0.5集群.pdf;
压缩包内的"说明.htm"可能是FastDFS的快速入门指南或者更新日志,详细介绍了如何安装、配置以及使用这个最新版的FastDFS。而"fastdfs-6.08"很可能是FastDFS的具体版本号,其中可能包含FastDFS的所有源文件,包括...
"Ubuntu+fastdfs+nginx"的组合提供了一个高效、稳定且可扩展的解决方案。这个组合充分利用了Ubuntu作为稳定的操作系统基础,FastDFS作为专业的分布式文件系统,以及Nginx作为高性能的反向代理和负载均衡器。 首先,...
"一.FastDFS入门.pdf"可能包含FastDFS的基本概念、安装部署、API使用等内容,适合初学者快速了解FastDFS的使用。"二.FastDFS_宝塔Nginx整合.pdf"则详细讲解了如何将FastDFS与宝塔面板以及Nginx服务器进行集成,宝塔...
FastDFS是一款开源的高性能、轻...总之,"FastDFS例子和整理的工具类"这个资源为开发者提供了一个快速入门和实践FastDFS的平台,通过学习和使用其中的示例及工具,可以更深入地理解和掌握FastDFS的运行机制和应用技巧。
1. **快速入门** 在Java项目中引入`fastdfs-client-java-1.27-SNAPSHOT.jar`作为依赖,可以通过Maven或Gradle进行管理。在Maven的pom.xml文件中添加如下依赖: ```xml <groupId>com.github.tony19</groupId> ...
HttpClient 入门和实战 HttpClient 是一个基于 HTTP/1.1 协议的客户端编程工具,可以用来发送 HTTP 请求和接收响应。HttpClient 可以用来实现 HTTP 客户端的各种功能,如发送 GET、POST、PUT、DELETE 等请求,上传...
关注送资料内容包括:C/C++,Linux,Nginx,golang,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,ffmpeg,流媒体, 音视频,CDN,P2P,K8S,Docker,Golang,TCP/IP,协程,嵌入式,ARM,DPDK等等。。。
Spring Boot入门教程,共42课,分别讲解了基础WEB开发、Thymeleaf、FastDFS、WebSocket、JDBC、MyBatis、JPA、Druid、Memcache、Redis、 ActiveMQ、RabbitMQ、MongoDB、ElasticSearch、Quartz、Security、 Actuator...
Fastdfs Ver 4.06.1的Python接口。 安装 $ sudo python setup.py install 入门 1. import fdfs_client.client module 2. instantiate class Fdfs_client 3. call memeber functions >>> from fdfs_client.client ...
3、用途:项目具有较高的学习借鉴价值,也适用于小白学习入门进阶。当然也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或者热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他...
### 分布式框架简介SSM组合+springmvc+mybatis+shiro+restful+bootstrap #### 一、基础知识与入门 本节主要介绍如何基于SSM(Spring、SpringMVC、MyBatis)框架搭建一个简单的Web应用程序,并实现一个HelloWorld...
在学习资源方面,CNote是一个致力于打造易懂的C语言入门教程的项目。该项目不仅提供文字教程,还有配套的视频教程,总计170节。CNote的地址是***。 Nginx是一个高性能、高可靠的Web服务器和反向代理服务器,它基于...
主要包含以下框架:docker、dubbo、elasticsearch、fastDFS、Git、hashMap、jvm、MongoDB、mybatis、nio、rabbitMQ、Redis、rocketMQ、socket编程、spring、springboot、springcloud、springsecurity、多线程、异常...
3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 4.如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 基于SpringBoot+Vue...
【3】项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能,欢迎交流...
8. 和中间件的交互,Spring Boot支持多种中间件,包括Redis,RabbitMQ,FastDFS等。 9. 部署监控,Spring Boot提供了Actuator监控应用,Admin监控多个应用。 10. 开源电子书,Spring Boot开源电子书提供了关于...
1. **若依框架简介** 若依框架(RuoYi)是一款基于Spring Boot和Vue.js的前后端分离的管理系统框架,旨在提高开发效率,提供简洁易用的API,支持快速搭建企业级Web应用。它具有良好的模块化设计,使得代码结构清晰...