Java 从两个服务器实例访问文件

Java 从两个服务器实例访问文件,java,file,jboss,Java,File,Jboss,我正在将文件上传到Jboss服务器的某个位置。 服务器有两个实例,我监视文件是在Node1还是Node2上传的 在这里,若我的文件下载请求只到达节点1,那个么节点2上可用的文件将不会被提供,反之亦然。如何解决这个问题 是否有任何方法可以检查文件的位置,并将请求重定向到该节点 注意:我不能使用共享驱动器或公共位置来访问这些文件。此问题取决于您希望遵循的设计。我们将采用两种方法 如果服务器1抛出FileNotFoundException,请将相同的文件请求转发给服务器2。如果文件在服务器2中可用,请

我正在将文件上传到Jboss服务器的某个位置。 服务器有两个实例,我监视文件是在Node1还是Node2上传的

在这里,若我的文件下载请求只到达节点1,那个么节点2上可用的文件将不会被提供,反之亦然。如何解决这个问题

是否有任何方法可以检查文件的位置,并将请求重定向到该节点


注意:我不能使用共享驱动器或公共位置来访问这些文件。

此问题取决于您希望遵循的设计。我们将采用两种方法

  • 如果服务器1抛出FileNotFoundException,请将相同的文件请求转发给服务器2。如果文件在服务器2中可用,请在对服务器1的响应中返回该文件。这需要时间,因为它必须创建HTTP连接、等待响应等

  • 将文件位置/服务器位置保存在数据库中。在检查文件之前检查数据库,并执行与1相同的操作

  • 如果应用程序基于EJB(您没有提到),那么您可以进行远程EJB调用,这将比我估计的HTTP更快

  • 但是,这些都不能减少文件冗余和空间问题。我希望有足够的理由不使用共享存储,因为上面提到的那些会使很多事情变得复杂,比如文件处理、异常处理、内存管理等等