AWS Tomcat 8上的多战策略部署

时间:2017-01-03 13:43:46

标签: amazon-web-services elastic-beanstalk war tomcat8

我是AWS的新手,我们正在尝试使用Tomcat 8在AWS Elastic Beanstalk的单个实例上部署多个war文件。我们实际上有多个服务,我们希望确保它们主要可用。因此,即使代码发生变化,代码更改和部署也不会影响其他方式。我们尝试过多次战争并且它有效但是它再次意味着其他服务在任何一项服务发生变化时都无法使用。有没有办法实现这一点,而不是将多个战争压缩在一起,然后部署它?

1 个答案:

答案 0 :(得分:2)

如果每个War文件引用不同的Web应用程序,那么您可以使用源包部署这些war文件。

制作一个Source Bundle并在其中添加每个war文件。

Exp : MyApplication.zip
      ->app1.war
      ->app2.war
      ->app3.war
      ->ROOT.war

当Elastic Beanstalk发现您已经部署了这样的文件时,它会以不同于普通包的方式对待它。它采用名为ROOT.war的WAR文件并将其部署为根应用程序。其余的WAR文件部署在从其文件名派生的目录中。例如,可以通过/ application1路径访问application1.war。

现在更改HostManager提供的提取脚本。在给定文件中找到脚本:

/opt/elasticbeanstalk/srv/hostmanager/lib/elasticbeanstalk/hostmanager/utils/tomcatutil.rb

或者您可以通过给定命令找到脚本:

grep -i -r ROOT.war /opt/elasticbeanstalk/srv/hostmanager/lib/