您何时需要在Glassfish中使用单独的域?

时间:2010-08-02 11:31:08

标签: java-ee hosting glassfish glassfish-3

如果您想在Glassfish服务器上托管多个相当独立的应用程序,您是否需要单独的域?特别是:

  1. 同一域中的应用程序可以以某种方式相互干扰吗?
  2. 同一域中的不同应用可以侦听不同的IP地址/端口吗?
  3. 如果是这样,何时/为什么要实际使用单独的域?

2 个答案:

答案 0 :(得分:6)

从逻辑的角度来看,单个域中的单独域或多个应用程序的共存是相似的(您可以配置HTTP端口等)。

主要区别在于,在一种情况下,您有一个JVM运行所有应用程序,而在另一种情况下,您有几个JVM。这可以产生很大的不同。在我们的一个客户站点上,我们最初在一个域/ JMV中部署了所有内容,但最终决定将部署拆分到多个域/ JVM中,因为它提供了更好的性能,尤其是垃圾收集时间。所以是的,应用程序可能会以非常间接的方式干扰。

此外,Java EE应用程序无法真正关闭或启动,因此域是您可以打开和关闭的最小单元。在某些情况下,它很方便。

最后,有些内容属于每个域名,例如app。服务器日志级别,计时器持久性等。如果您想要两个具有不同设置的应用程序,则需要两个域。

答案 1 :(得分:1)

请考虑以下情况:您的域中部署了2个应用程序:轻量级前端应用程序和后端处理应用程序(假设每小时按计划运行任务并处理大量数据)。在这种情况下,您可能会遇到后端应用程序占用您的VM使得前端应用程序在极端情况下无响应的所有资源的问题,或者更糟糕的是,杀死jvm(例如内存不足错误或perm gen space错误)。

如果你把它分成两个域,即使你的后端东西刹车,其他应用程序也是安全的,因为它有自己的VM和内存可供使用。