7

我即将在单个 Tomcat 服务器上部署几个 grails 应用程序,我有以下疑问:

  1. 在内存使用方面:将通用 grails 库放在 shared/lib 下而不是将它们放在每个应用程序的 war 文件中是否有区别?有这些罐子的清单吗?
  2. 如果是这样,是否有一种机制不将这些 jar 打包到“生产”环境的 war 文件中?我正在使用 NetBeans 6.7。
  3. 我即将使用Tomcat 5.5;有什么经验建议改用 6.0 吗?

谢谢

4

2 回答 2

5

1) 将 jars 放在 shared/lib 或 common/lib 中可能会减少 PermGen 所需的内存量。恕我直言,最大的优势是上传战争文件要快得多。但请记住,正如 TripWird 所说,共享 jar 将所有已部署的应用程序与同一个 grails 版本联系起来。升级变成了“一无所有”的游戏。

2)如果你使用

grails prod war --nojars

然后所有 jar 文件都被排除在战争之外。

于 2010-04-18T19:32:51.537 回答
5

我认为最好的做法是让库保持在战争中,因为如果你更新一个共享的库,那么你必须确保它与你所有使用它的应用程序兼容。我们通常使用 grails 和 spring 来执行此操作,这样我们每次升级时都不必返回并进行兼容性测试。

此外,我相信 tomcat 会为每个应用程序加载一个类的实例,因此您不会通过将其用作公共类来节省内存。

也可以看看:

如果它们位于两个 Web 应用程序中,Tomcat 是否会将相同的库文件两次加载到内存中?

于 2010-02-01T01:42:35.103 回答