fastdfs文件系统
1:一个文件系统的组成?
包含tracker和storager,一个组包含不同的storager集群,tracker相当于cloud的注册中心,一个文件系统的总容量取决于每个分组的总和,一个分组的最大容量取决于最小的storager服务器。
2:当我们在上传的时候做了什么呢?
客户端通过访问tracker,通过tracker去找相应的可用,容量足够的group进行上传。
3:为啥使用GenericObjectPool创建连接池保存的是TrackerServer而不是StorageClient1?
(1)如果我们的连接池保存的是StorageClient1连接,那么在连接没有回收的情况下,每次的连接都将是同一个group,这就丧失了TrackerServer负载的能力而且也不科学。
(2)如果我们的连接池保存的是StorageClient1连接,上传可能没问题但是如果下载的话就会出现问题,比如上传的连接是使用的是group0,连接没有回收,那么如果下载的文件在gourp1那么文件就无法正常读取。
4:为什么还要加一层Nginx?(还有疑问具体的转发流程?)
可以直接通过Nginx服务器对storager里的文件,通过url访问,并有缓存,更加高效。
具体的转发流程->自己理解:就和自己写接口通过调用fasfdfsapi一样,Nginx也是这样通过和tracker建立连接,拿到相应的资源返回,实现通过url访问的功能,