首页 新闻 会员 周边 捐助

请教一个分布式文件系统都会遇到的问题。。业界是怎么处理的?

0
悬赏园豆:20 [待解决问题]

A、B 两台文件服务器,同时用于提供文件上传和下载的服务,他们之间会配置磁盘同步。

(我是在WindowsServer2012下用DFS来实现2台电脑之间文件夹内容自动同步的)。

 

这2台服务器同时部署了一个文件上传的站点(端口号为3000)和文件下载的站点(端口号为3002)。

现在:

用nginx将fileIn.com映射到A、B的3000

用nginx将 fileOut.com映射到A、B的3002 ,

(形成一个高可用的负载,当一台挂了,这个站点仍然可用)

 

我们调用上传的API传一个文件之后,API会返回一个下载链接,调用下载的API时,有可能分配给A服务器处理,也有可能分配给B服务器处理,

 

如果我们上传时是由A处理,下载时交给B处理(A、B之间的目录会自动同步,同步完成时间和文件大小有关系),那么如果是图片这类的小文件,到B上也能下载(下载时已经同步到B上了)。

 

但是如果文件比较大,100M左右的文件,到B上下载时还没有从A同步过来,这时就会报找不到文件。。。

 

其他的分布式文件系统应该也会遇到类似的情况,

请问大家遇到这种场景,是如何处理的呢?

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2017-10-23 15:03
< >
分享
所有回答(2)
0

没做过类似的玩意,但我感觉比较简单的就两种吧,一种回源到A上拉取,一种上传到A的时候在返回前确保B也写入

Daniel Cai | 园豆:10424 (专家六级) | 2017-10-23 17:29
0

如果上传后 立即下载 把nginx配置ip hash。

如果上传后 别人又可能会下载 那么获取文件的时候就判断一下文件是否存在 如果不存在就去重定向到另一台机器。 

peachyy | 园豆:243 (菜鸟二级) | 2017-10-25 13:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册