我正在使用JAVA EE 6开发应用程序,更具体地说,是Glassfish v3.1.2.2。
之前,我曾经把用户上传的图片和文件放在我的数据库中。如果我想通过添加节点来集群化我的架构,这将更容易。
现在,我真的想停止这样做而只是将我上传的文件保存到我的资源文件夹(出于多种原因such as this),这样就很简单了{{1}或者<img>
有一个名字就行了。
我的问题是当我添加其他服务器时这是如何工作的?该文件只会保存到处理请求的服务器资源文件夹中,其他服务器将不会拥有该文件。
现在也许有人会建议使用分布式文件系统,这听起来不错,除非你为你的应用租用一些托管/云服务而你无法真正选择你的文件系统。 (可能有其他原因阻止您转向此设置)
JAVA EE是否提供透明同步资源文件夹的任何方式? JSF已经处理它的版本控制和管理库等,我可以设置一些配置,以便所有服务器保留其资源文件夹最新的文件更改/上传?
如果没有,有哪些替代方案?
答案 0 :(得分:0)
Java EE没有提供在群集的公共文件夹中同步图像的方法,您的appserver可能会为此提供支持,但我不知道appserver中有任何此类解决方案。
根据您的情况,我将使用NFS服务器并保留可从所有群集访问的NFS服务器目录上的文件。
如果您不允许更改硬件设置,则可以创建一个Web服务器来托管资源,并且可以从所有群集访问您的资源,例如
所有群集上的 <h:graphicImage value="http://myimageserver.local.com/sitename/foldername/xyz.gif"/>
。