本篇文章给大家分享的是有关Java负载均衡服务器如何实现文件上传同步,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
负载服务器Z,应用服务器A 和B ,从A上传的附件,如何在B上下载下来?
这个问题我的解决思路如下(后来被一个装逼的面试官给批评了这种做法,不过我瞧不起他)
服务器A、B 上传附件的时候,将这个附件备份到服务器Z ,当A、B下载文件的时候,首先会在自己服务器的目录下寻找,如果找不到,就会从服务器Z 上下载一份到当前服务器。
服务器之间的文件备份通过sftp,参考:/tupian/20230522/196008.htm(下文中的SftpCustom 类就是这个链接里的 “SFTP上传下载文件例子” 中的类)
这里主要介绍一下重写上传、下载的方法时应该添加的代码
上传文件,异步操作
new Thread(() -> { SftpCustom fu = new SftpCustom(); fu.upload(file.getAbsolutePath(), getFileName(fileDescr)); fu.closeChannel(); }).start();