我正在将文件上传到Jboss服务器的某个位置。 服务器有两个实例,我监控文件是在Node1或Node2上传的。
这里如果我的文件下载请求只到达Node1,那么Node2上的文件将不会被提供,反之亦然。如何解决这个问题。
有什么方法可以检查我的文件在哪里,我可以将我的请求重定向到该节点。
注意:我无法访问这些文件的共享驱动器或公共位置。
答案 0 :(得分:0)
此问题受到您要遵循的设计的影响。几种方法将是
如果服务器1抛出FileNotFoundException,则将相同的文件请求转发给Server 2.如果Server 2中有文件,则返回服务器1的响应中的文件。这需要时间,因为它必须创建HTTP连接,等待响应等
将文件位置/服务器位置保存在数据库中。在检查文件之前检查数据库,并执行与1相同的操作。
如果应用程序基于EJB(您还没有提到它),那么您可以进行远程EJB调用,这将比我想象的HTTP更快。
这些都没有减少文件冗余,但是空间问题。我希望有足够的理由没有共享存储,因为上面说的那些,只会使文件处理,异常处理,内存管理等许多问题变得复杂。