FastDFS induction

FastDFS as a distributed file system first door I need to know the problem with traditional methods
**

Shortcomings of traditional document management methods

**

1web应用重新部署会导致用户上传文件会丢失
2集群环境下 如果有多个tomcat 没有文件同步机制 所以用户可能会发现文件突然消失 又突然出现
3扩容缺乏弹性
4如果每个文件在每个服务器只存了一份 那么就会有单点故障问题

**

FastDFS function

**

1文件不会存储在应用服务器上面 不受应用服务器web重新部署的影响
2内置同步线程 可以进行数据备份 同一个文件存储在多台不同服务器上
		同一个卷内服务器存储相同的文件 同组服务器之间使用同步线程同步文件数据 可以避免单点故障 对外提供统一的访问接口
3动态扩容
		用户通过tracker服务器 来访问storage服务器 也就是tracker服务器管理storage服务器 动态增加storage 用户感觉不到
		
tracker:记录storager服务器的信息。客户端使用存储服务的时候,可以询问tracker,由tracker动态分配一个健康状态好、剩余存储空间较大的storager来提供服务。
storager:存储具体的文件数据。一个卷内有多个storager服务器,同一个卷内的storager之间会进行数据的同步,从而保证同一个卷内各个storager服务器上存储的文件一致,避免单点故障。

tracker和storager之间通信机制:storager主动向tracker汇报,因为增加storager的概率更大

**

java use

**

1准备配置文件  ,在配置文件中保存tracker服务器的地址
2声明一个字符串 保存 1 中配置文件的路径(以/开头)
3动态得将tracker的路径变成绝对物理路径 如果你是在windows上开发在linux上面运行的话
		类名.class.getResource(2中的字符串).getPath();
4对FastDFS客户端进行初始化: ClientGLobal.init(3中的绝对物理地址);
5	声明四个变量
		TrackerServer trackerServer = null;
		TrackerClient trackerClient = null;
		StorageServer storageServer = null;
		StorageClient storageClient = null;
6.创建trackerClient对象
		trackerClient = new TrackerClient();
7.通过trackerClient获取trackerServer
		trackerServer = trackerClient.getConnection();
8.创建storageClient对象
		storageClient = new StorageClient(trackerServer, storageServer); 然后就可以通过storageClient的uoload_file方法打印出存储在服务器端的文件路径了
		
Published 63 original articles · won praise 44 · views 6252

Guess you like

Origin blog.csdn.net/weixin_40695328/article/details/93197958