一、为什么要搭建fastdfs集群?
1、分布式文件存储就很多产品,现在这里用免费版的fastdfs,但是需要配置,就比较麻烦。有那种比较简单的也比较豪华的,拿来就直接使用,但是比较贵。
2、fastdfs是由c语言实现的开源轻量级分布式文件系统,解决了大数据存储和读写负载均衡等问题,适合存储4kb-500mb之间的小文件(图片,音视频文件等等),该软件的作者是阿里巴巴的大牛,叫庆余写的,开源免费的。
3、这里的实现方式:nginx和fastdfs
4、可以把图片或者音视频存储到fastdfs的服务器上,但是这个fastdfs服务器不提供web的http协议访问,所以这里还要用到nginx服务器(http协议),通过这个Nginx服务器把图片显示到前端页面。
5、在多个客户端上传或者下载图片存储服务器的时候,高并发的时候,10w个客户端同时请求,单机的存储服务器的io磁盘的能力是有限的,最快就100兆/s,就显得单机服务器应付不过来了。
6、所以现在就要把单机服务器改成多机,搭建一个集群,让集群去提供服务。
实在不行,再加缓存服务器,再不行就加限流,解决高并发问题。
二、讲解fastdfs实现原理
1、fastdfs分为两部分:tracker[ˈtrækə®](跟踪器)和storage[ˈstɔːrɪdʒ](存储)
2、storage定时向tracker上传自己的存储状态
3、用户访问首先请求的是track服务,track返回可用的storage的ip和端口,用户再根据ip和端口进行上传文件,最后storage返回路径和文件名。
4、由于可以得出结论:计算机的所有难题,解决难题的都只有一个原则,就是建立一个中间层,就像这个tracker中间层一样。