如何在运行在多台服务器上的应用程序之间共享文件

时间:2018-11-22 06:02:25

标签: java tomcat server

我有一个Java应用程序,在两个不同的服务器A和B上的Apache tomcat上运行。该应用程序涉及上载和下载文件,主要是pdf和图像。目前,我有一个FTP服务器F,用于存放所有文件。现在,我遇到以下问题:

  1. 文件的上传和下载在创建FTP连接时引起问题(有时会连接,有时会引发超时错误)。
  2. 我正在通过将图像转换为BASE 64格式来显示图像,这也导致了上述相同的麻烦。

我能想到的解决方案是

  1. 使用应用程序服务器托管文件(这是正确的做法吗?), 也因为我有两个不同的服务器运行应用程序 很难在它们之间建立同步。
  2. 我听说过有关共享文件托管的信息,但这会引起安全问题。

对于上述问题的任何解决方案将不胜感激。

2 个答案:

答案 0 :(得分:0)

如果您的应用程序使用数据库,则可以将这些文件作为LOB(字符或二进制大对象)存储在数据库中而不是磁盘中。

答案 1 :(得分:0)

如果文件很小,则可以将它们作为CLOB或BLOB存储在数据库中,并通过HTTP(来自应用程序服务器的其余端点)提供服务

如果文件很大,请将其存储在NAS或任何其他共享存储中。不要将它们转换为BASE64,而是通过HTTP(来自应用程序服务器的其余端点)作为二进制附件来使用。您可能会或可能不会将文件位置存储在数据库中的某个位置以进行跟踪。