小伙伴们知道fastdfs集群搭建原理是什么吗?经过前几次的讲解,相信你们已经知道该如何搭建fastdfs集群了,下面我们就来了解一下它的原理吧。
一、设计理念
它设计之初是为解决互联网中各种单体计算机异常而特地制作的分布式文件系统,它的主要特点就是它的轻量级、分组方式及对等结构。它设计时充分考虑了系统的冗余备份、线性扩容、负载均衡等机制,且它十分注重高可用、高性能等指标。
二、系统结构
在FastDFS的服务端有着两个角色:
1)、跟踪器(tracker)
跟踪器的主要工作就是做调度,且它还能在访问上起着负载均衡的作用。
2)、存储节点(storage)。
存储节点支持存储文件和各种文件管理功能还能为存储、同步提供存取接口,同时,FastDFS还能对文件的meta data进行各种管理。具体来说,文件的meta data其实就是文件的相关属性,这个属性会以以键值对(key value pair)的方式实现,例:width=1024,其中key为width,value为1024。文件meta data是文件属性列表,其中可以包含多个键值对。
结构图:
注明:在实际开发中,跟踪器与存储节点实际是可以由一台或多台服务器构成的。在系统中,跟踪器与存储节点中的服务器都可以随时增加或者下线而并不会影响线上服务。尤其是跟踪器,它的所有服务器都是对等的,随时可以根据服务器的压力来增加或减少。
三、文件上传交互过程
1)、先由 client询问tracker上传到的storage,不需要附加参数;
2)、然后 tracker会返回一台可用storage;
3)、 最后client可以直接与storage通讯来完成文件上传。
FastDFS file download
四、文件下载交互过程
1)、client询问tracker下载文件的storage,参数为文件标识,就是卷名和文件名;
2)、 tracker返回一台可用storage;
3)、client与storage通讯完成文件下载。
注:client1使用FastDFS服务的调用方,实际来说,client也应该是一台服务器,它对tracker及storage的调用均为服务器间调用。
以上就是关于fastdfs集群搭建原理的全部内容,如果有疑问还需要了解更多相关java架构师知识,就请持续关注我们的网站吧。
推荐阅读: