首页 新闻 搜索 专区 学院

多IP多服务器数据处理

0
悬赏园豆:20 [已解决问题] 解决于 2019-06-10 09:21

业务场景:一文件管理系统,用来处理客户上传下载附件的,主要处理方式为:客户端上传文件到服务器,通过中间层HTTP或TCP进行数据传输,在将数据传输到服务器之后,系统接收文件并保存到指定目录,同时在数据库中保存文件相关信息,如名称、类型、大小、上传服务器IP等信息,下载时,根据保存的附件信息拼接相应的下载链接;增加服务器IP字段,是用来判断该文件所保存的服务器地址,默认可以上传到不同的服务器中;
遇到的问题:如果客户服务器所处网络环境较为复杂,既有局域网连接也有外网连接及VPN连接,各个IP端相互之间不存在联系(广域网IP除外,当然有的客户端是禁止连接外网的,所以全部使用外网也是行不通的!),如下图所示:

客户端A上传文件到服务器A中,默认数据库中附件记录的信息是服务器A所在192.168.1网段的地址,如果是相同192.168.1网段的客户端访问文件进行下载,操作没有问题,但是如果客户端B或C想下载A上传的附件信息,根据附件信息中保存的IP拼接出的附件地址是错误的,没法进行下载,同样的B或C上传的附件任意其他非同网段的客户端进行访问时都会出现问题;
目前想到的唯一的处理办法:数据库记录多个IP段的信息,在客户端进行拼接下载时,遍历所有IP,如果可以ping通该IP,则表示可以下载,如果不行则提示404,这么处理虽然临时解决了问题,但是总感觉有点Low,希望各位神通广大的网友可以给出好点的解决问题的处理方式,ORZ,谢谢!!

sunkejava的主页 sunkejava | 初学一级 | 园豆:196
提问于:2019-01-06 21:58
< >
分享
最佳答案
0

给Client分个标识符,按客户端区分,不按IP来区分

  • 局域网里面的客户端全部标志为A
  • VPN的客户端标志为B
收获园豆:20
大志若愚 | 小虾三级 |园豆:1883 | 2019-01-07 17:28
其他回答(3)
0

可以用域名绑定服务器啊,直接存储文件路径,比如 http://servera.data.com/xxx/xxx/xxx/xxxxxxxxxxxx.txt,http://serverb.data.com/xxx/xxx/xxx/xxxxxxxxxxxx.txt

KingMi | 园豆:1108 (小虾三级) | 2019-01-07 13:36

不行的,客户端存在只允许局域网使用不允许访问外网的机器,肯定就没法解析域名了,更别说访问了,这跟用广域网IP统一调用一样

支持(0) 反对(0) sunkejava | 园豆:196 (初学一级) | 2019-01-07 13:59
0

内部网也可以弄域名

保镖 | 园豆:637 (小虾三级) | 2019-01-08 15:38
0

没法子了用最蠢的解决方案,遍历所有已存在的IP地址,判断是否可以连通,如果可以连通则进行地址拼接下载

sunkejava | 园豆:196 (初学一级) | 2019-06-10 09:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册