0

我正在使用 JAVA EE 6,更具体地说,Glassfish v3.1.2.2 开发应用程序。

以前,我曾经将用户上传的图像和文件放在我的数据库中。如果我想通过添加节点来集群化我的体系结构,这将更容易。

现在,我真的很想停止这样做,只需将我上传的文件保存到我的资源文件夹(出于多种原因,例如 this),这样一个简单的<img><h:graphicImage>有名字的就可以了。

我的问题是当我添加其他服务器时这是如何工作的?该文件只会保存到处理请求的服务器的资源文件夹中,其他服务器不会有它。

现在也许有人会建议使用分布式文件系统,这听起来很棒,除非您为您的应用程序租用一些托管/云服务并且您无法真正选择您的文件系统。(可能有其他原因阻止您转向此设置)

JAVA EE 是否提供任何透明同步资源文件夹的方式?JSF 已经处理了它的版本控制和管理库等,我是否可以设置一些配置,以便我的所有服务器通过任何文件更改/上传来保持它们的资源文件夹是最新的?

如果没有,有什么替代方案?

4

1 回答 1

0

Java EE 不提供在集群的公共文件夹中同步图像的方法,您的应用服务器可能对此提供支持,但我不知道应用服务器中有任何此类解决方案。

根据您的情况,我将使用 NFS 服务器并保留 NFS 服务器目录上的文件可从所有集群访问。

如果您不允许更改硬件设置,那么您可以创建一个 Web 服务器来托管资源,并且您可以从所有集群访问您的资源,例如,

<h:graphicImage value="http://myimageserver.local.com/sitename/foldername/xyz.gif"/>在您的所有集群上。

于 2013-03-09T23:38:20.853 回答