轻松搞出一个云盘项目(二),基础环境介绍及搭建上

本文介绍了FastDFS的基本概念,如其作为分布式文件系统的角色和高可用特性。详细阐述了FastDFS的三个核心组件:Tracker Server、Storage Server和客户端。文件上传和下载流程被提及,强调了file_id在定位文件中的重要性。此外,提供了单机版FastDFS的安装步骤以及后续的配置和验证过程。
摘要由CSDN通过智能技术生成

1、FastDFS是什么

  •  FastDFS是一款开源的、分布式文件系统(Distributed File System), 由淘宝开发平台部资深架构师余庆开发。它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载、文件删除)等,解决了大容量存储和负载均衡的问题。
  • 为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。
  • 使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

2、框架介绍

    

 

FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。
Tracker Server:跟踪服务器

    主要做调度工作,并对Storage Server起到负载均衡的作用;
    负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group等信息,并保持周期性心跳。
    Tracker Server可以有多台,Tracker Server之间是相互平等关系同时提供服务Tracker Server不存在单点故障。客户端请求Tracker Server采用轮询方式,如果请求的Tracker无法提供服务则换另一个Tracker。

Storage Server:存储服务器

    主要提供容量和备份服务;
    以 group 为单位,不同group之间互相独立,每个 group 内可以有多台 storage server,数据互为备份。
    采用分组存储方式的好处是灵活、可控性较强。比如上传文件时,可以由客户端直接指定上传到的组也可以由Tracker进行调度选择。
    一个分组的存储服务器访问压力较大时,可以在该组增加存储服务器来扩充服务能力(纵向扩容)。当系统容量不足时,可以增加组来扩充存储容量(横向扩容)。
3、文件上传流程:

4、文件下载

       注意:不管上传还是下载都用了一个很关键的东西,那就是file_id,那file_id是什么呢,选择存储目录后,storage 会生成一个 file_id,采用 Base64 编码,包含字段包括:storage server ip、文件创建时间、文件大小、文件 CRC32 校验码和随机数;每个存储目录下有两个 256*256 个子目录,storage 会按文件 file_id 进行两次 hash,路由到其中一个子目录,,然后将文件以 file_id 为文件名存储到该子目录下,最后生成文件路径类似这种:group1/M00/00/00/wKhS_VlrEfOAdIZyAAAJTOwCGr43848,跟身份证号码一个道理。

五、安装单机版FastDFS

1、分别进去./make.sh

      sudo ./make.sh install

2、测试:fdfs_test

六、FastDFS配置

1. 默认配置文件位置:
	/etc/fdfs
2. Tracker(追踪器)
	修改配置文件
	    bind_addr=192.168.xxx.xxx 
	当前主机的IP
	    port=22122
	 绑定的端口
	    base_path=/home/songqiang/fdfs/tracker
	log目录
	启动Tracker服务
	    fdfs_trackerd /etc/fdfs/tracker.conf
	    sudo fdfs_trackerd /etc/fdfs/tracker.conf   restart
	    sudo fdfs_trackerd /etc/fdfs/tracker.conf   stop
3. Storage(存储节点)
	修改配置文件
	    group_name=group1 
	存储节点所属的组
	    bind_addr=192.168.xxx.xxx
	存储节点绑定的IP
	    port=23000
	绑定的端口
	    base_path=/home/songqiang/fdfs/storage
	存储日志文件的目录
	    store_path_count=1 
	存储目录的个数
	    store_path0=/home/songqiang/fdfs/storage
	配置具体的存储目录
	    tracker_server=192.168.xxx.xxx:22122
	连接tracker的时候使用的IP和端口
	启动Stroage服务
	    fdfs_storaged /etc/fdfs/storage.conf
	    sudo fdfs_storaged /etc/fdfs/storage.conf  restart
	    sudo fdfs_storaged /etc/fdfs/storage.conf  stop
4. Client
	修改配置文件
	    base_path=/home/songqiang/fdfs/client
	log日志目录
	    tracker_server=192.168.xxx.xxx:22122
	连接tracker时候需要的iP和端口信息
5. 检测当前fdfs环境是否是通的
	    fdfs_monitor /etc/fdfs/client.conf

七、验证

上传文件:

fdfs_upload_file  /etc/fdfs/client.conf  a.out

下载文件:

fdfs_download_file  /etc/fdfs/client.conf   group1/M00/00/00/wKjDg145dpWAIPMaAAAmUK7CnJU649.out
Javascript & jQuery &Ajax&JSON · jquery-1.7.2.js · jquery-1.7.2.min.js · jQuery插件 · EasyUI+v1.3.4官方API中文版 · EasyUI+v1.3.4官方API中文版.rar · jackson-src-1.7.1.zip · ext-3.0.0.zip · google-gson-2.2.4-release.zip apache-commons框架 · commons-validator-1.3.1-src.zip · commons-lang3-3.2.1-src.zip   · commons-fileupload-1.2.1-src.zip   · commons-dbutils-1.3-bin.zip   · commons-pool-1.5.5-bin.zip   · commons-io-2.0-bin.zip   · commons-lang-2.5-src.zip   · commons-logging-1.1.1-bin.zip   · commons-io-2.0-src.zip   · commons-lang3-3.2.1-bin.zip   · commons-lang-2.5-bin.zip   · commons-dbutils-1.3-src.zip   · commons-pool-1.5.5-src.zip   · commons-validator-1.3.1.zip   · commons-logging-1.1.1-src.zip   · commons-dbcp-1.4-src.zip   · commons-fileupload-1.2.1-bin.zip   · commons-codec-1.4-bin.zip   · commons-dbcp-1.4-bin.zip   · commons-collections-3.2.1-src.zip   · commons-codec-1.4-src.zip   · commons-beanutils-1.8.0-bin.zip   · commons-beanutils-1.8.0-src.zip   · commons-collections-3.2.1-bin.zip SSH框架   · struts-menu-2.4.3.zip   · spring-modules-0.9-with-dependencies.zip   · spring-framework-3.1.0.CI-1163-dependencies.zip   · spring-framework-2.5.6.SEC01-with-dependencies.zip   · struts-menu-2.4.3-src.zip   · struts-2.3.15.3-all.zip   · spring-framework-4.0.0.RELEASE-dist.zip   · struts-2.3.4-all.zip   · struts-1.3.8-all.zip   · spring-framework-3.1.1.RELEASE-with-docs.zip   · struts2-2.2.1-all.zip · struts-2.1.8.1-all.zip  · hibernate-distribution-3.6.0.Final-dist.zip   · hibernate-distribution-3.5.1-Final-dist.zip   · hibernate-release-4.2.4.Final.zip spring-data-jpa(1.4.2.RELEASE)   · spring-data-jpa-1.4.2.RELEASE-sources.jar   · spring-data-jpa-1.4.2.RELEASE-javadoc.jar   · spring-data-jpa-1.4.2.RELEASE.jar  · spring-data-jpa-reference.pdf spring-data-commons  · spring-data-commons-1.6.2.RELEASE-sources.jar · spring-data-commons-1.6.2.RELEASE.jar   · spring-data-commons-1.6.2.RELEASE-javadoc.jar shiro   · shiro所有相关jar包   · shiro-root-1.2.2-source-release.zip spring-security   · spring-security-3.1.0.M1.zip   · spring-security-2.0.5.zip 工作流   · jbpm-4.3.zip   · jbpm-4.4.zip   · jbpm-jpdl-suite-3.2.3.zip   · activiti-5.15.1.zip 其它   · spring-modules-0.9.zip   · poi-src-3.5-FINAL-20090928.zip   · poi-bin-3.5-FINAL-20090928.zip   · slf4j-1.6.1.zip   · pinyin4j-2.5.0.zip   · ognl.zip   · mysql-connector-java-5.1.7.zip   · joda-time-2.3-dist.zip   · jfreechart-1.0.13-javadocs.zip   · jfreechart-1.0.13.zip   · jdom-1.1.zip   · javamail-1_4_1.zip   · jakarta-taglibs-standard-1.1.2-src.zip   · jakarta-taglibs-standard-1.1.2.zip   · jaf-1_1_1.zip   · hibernate-validator-5.0.0.CR2-dist.zip   · guice-1.0-src.zip   · guice-1.0.zip   · displaytag-1.2-bin.zip   · displaytag-1.2-src.zip   · cewolf-1.1.4.zip   · cewolf-1.0-bin-src.zip   · c3p0-0.9.1.2.src.zip   · c3p0-0.9.1.2.bin.zip   · apache-log4j-1.2.15.zip   · xwork2-2.1.rar   · dom4j-1.6.1.rar   · elecfans.com-XPath.rar   · xwork-assembly-2.1.6-all.zip   · quartz-2.2.1-distribution.tar.gz   · xloadtree_zh_cn.zip   · xdoclet-src-1.2.3.zip   · xdoclet-bin-1.2.3.zip   · xfire-distribution-1.2.6.zip   · xdoclet-lib-1.2.3.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值