在Tomcat上部署Grails应用程序很慢

时间:2015-03-14 03:09:45

标签: tomcat grails tomcat7

我使用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应用程序部署?

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

1 个答案:

答案 0 :(得分:0)

事实证明,这个问题与“熵源”有关,正如Tomcat wiki所述,关于如何加速启动Tomcat。所以解决方案是将以下JDK选项添加到Tomcat配置文件中:/ etc / default / tomcat7:

    <?PHP
// This code is just basic example
$we_need = array(
    'Carrot',
    'Onion',
    'Milk',
    'Onion',
    'Potato'
); // Notice that Onion is on two places
$basket  = array(); // An empty basket
foreach ($we_need as $product) {
    // Add product to basket ONLY if it's not already there
    if (!in_array($product, $basket)) {
        $basket[] = $product;
    } else {
        echo "For debugging: Duplicate detected, so skipped.\n";
    }
}
print_r($basket);
?>

现在Tomcat可以在大约20-30秒内可靠地启动。