虽然我主要对Java / GlassFish感兴趣,但我当然认为它适用于任何平台/应用服务器。
是否可能将同一JAR,WAR或EAR的多个实例部署到同一个GlassFish服务器,以进行扩展?这意味着,如果我有MyApp.ear
,并且看起来我需要将其扩展以处理负载峰值,我可以在同一个GlassFish服务器中重新部署2个以上的MyApp.ear
实例吗?
这样做实用吗?
答案 0 :(得分:2)
绝对可以在JBoss上使用,所以我想它也适用于GlassFish。我不知道,这对缩放有何帮助?如果您在单个服务器上缺乏性能,您可能只想查看配置GlassFish。您可以调整JVM设置来处理峰值负载。
我认为要扩展java应用程序,您应该在不同的服务器上运行它。您可以为整个应用程序或其中的一部分执行此操作。 (例如,如果你有一个n层架构,你可以让你的层在不同的服务器上运行,这将需要一些或很多重构)
答案 1 :(得分:2)
这在很大程度上取决于您的应用。通常,如果有以下任何模块的多个实例,则不是问题: - 他们不使用相同的战争背景和 - 不要使用相同的JNDI名称的EJB。
问题是,你为什么要这样做。通常,您有两种扩展Java EE应用程序和服务器的选项。水平和垂直。 水平是指在许多(较小)机器上具有多个app-server实例。垂直表示同一(更大)机器上的多个app-server实例。如果您研究Java EE扩展和集群,答案是:您不会“扩展”(多部署)您的应用程序,但您将扩展您的应用程序服务器实例。 这里有一篇关于使用GlassFish进行聚类的好文章: http://glassfish.java.net/public/clustering31.html 包括详细了解拓扑和架构。
我看到有人试图将同一个应用程序部署到一个app-server两次或更多次的唯一原因是他们正在考虑同时运行不同的版本。有一个名为“应用程序版本控制”的GlassFish功能。看看这里的屏幕投射:http://www.youtube.com/watch?v=lgbr_Hywawc 但即使这个功能也不允许您并行运行它们,但您可以将不同版本部署到您的实例中。
谢谢, 中号
答案 2 :(得分:0)
我对企业架构知之甚少,但我认为可以在同一个JVM中运行两个实例。虽然它不能很好地扩展。您可能想要考虑分布式架构。