FastDFS+Nginx搭建分布式文件系统


一,关于FastDFS


     FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。



     如上图,其中tracker并不保存实际的图片,而是起到一个协调的作用,具体的图片存储在storage里面。但我们页面上通过url读取图片的时候,我们读取的还是storager的地址,但是storager本身是不带http服务器功能的,所以,我们还需要使用nginx来作为我们的http服务器,我们再client才能通过url读到图片。



  上传下载的流程:

           

             上传:


           

    

     

       客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名。



  • 组名:文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
  • 虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
  • 数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。

文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。



           下载:


          



二,FastDFS+Nginx搭建


            为了完成正常的上传下载文件的功能,我们需要搭建tracker,storage,nginx。其中nginx跟FastDFS的交互通过nginx的插件fastdfs-nginx-module_v1.16.tar.gz 来完成。


            所需压缩包如下:


             


            此处省略一万个字。。。再见


三,代码测试

            

                

	@Test
	public void testUpLoad() throws FileNotFoundException, IOException, MyException{
		//1,把FastDFS提供的jar添加到工程中
		//2,初始化全局配置,加载一个配置文件
		ClientGlobal.init("G:\\taotaoShop\\taotao-manager\\taotao-manager-web\\src\\main\\resources\\properties\\client.conf");
		//3,创建一个TrackerClient对象
		TrackerClient trackerClient=new TrackerClient();
		//4,创建一个TrackerServer对象
		TrackerServer trackerServer=trackerClient.getConnection();
		//5,声明一个StorageServer对象,null
		StorageServer storageServer=null;
		//6,获得StorageClient对象
		StorageClient storageClient=new StorageClient(trackerServer,storageServer);
		//7,直接调用StorageClient对象方法上传文件即可
		String[] strings=storageClient.upload_file("‪‪‪H:\\Sherl.jpg", "jpg", null);
		for(String s : strings){
			System.out.println(s);
		}
	}






  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水田如雅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值