【问题标题】:Deploying Grails applications on Tomcat is slow在 Tomcat 上部署 Grails 应用程序很慢
【发布时间】:2015-03-14 03:09:44
【问题描述】:

我使用Grails framework(版本 2.3.7)开发了许多不同的 Web 服务。每个 Web 服务做不同的事情,有些简单,有些更复杂。有些只有几个依赖项(插件等),有些则很多。

对于生产,我在 Tomcat 7 上部署每个服务/应用程序,每个服务/应用程序都在不同的 VM 上。为此,我首先构建了一个 WAR:

> grails war

然后我在 Tomcat 上将 WAR 部署为 ROOT 应用程序 (/var/lib/tomcat7/webapps/ROOT.war)。这工作得很好。

但是,当(重新)启动 Tomcat 时,部署应用程序通常需要 2-7 分钟,有时甚至更长时间。我没有注意到应用程序的复杂性和部署时间之间的真正关联。

部署时间如此之长的原因可能是什么?为了加快 Tomcat 7 上的 Grails 应用程序部署,我应该注意什么?

或者这正是我应该期待的,我应该学会忍受它?

【问题讨论】:

  • 一个典型的 Grails 2.x 应用程序/WAR 将在大约 30 秒左右启动。所以你的启动时间很慢。你用的是什么插件? Bootstrap.groovy 中正在运行什么代码?它们中的任何一个是否依赖于外部资源(其他 Web 服务等)?
  • 感谢您确认我的启动时间已经过时了。我想我找到了答案,可以在下面找到。

标签: tomcat grails tomcat7


【解决方案1】:

原来这个问题与“熵源”有关,正如Tomcat wiki 中有关如何加快启动 Tomcat 的记录。所以解决的办法是在Tomcat配置文件中添加如下JDK选项:/etc/default/tomcat7:

-Djava.security.egd=file:/dev/./urandom

现在 Tomcat 可以在 20-30 秒左右可靠地启动。

【讨论】:

    猜你喜欢
    • 2013-11-03
    • 1970-01-01
    • 2012-10-03
    • 2017-02-27
    • 1970-01-01
    • 2016-09-07
    • 2015-11-03
    • 1970-01-01
    • 2017-09-04
    相关资源
    最近更新 更多