建议部署 war 文件与带有嵌入式容器的可执行 jar
Java领域目前的趋势似乎是从以war文件(或耳朵文件)的形式将java Web应用程序部署到java servlet容器(或应用程序服务器),而是将应用程序打包为带有嵌入式servlet / HTTP服务器(如jetty)的可执行jar。我的意思是,较新的框架更多地影响着新应用程序的开发和部署方式,而不是应用程序交付给最终用户的方式(因为,例如,我明白为什么Jenkins使用嵌入式容器,非常容易获取和移动)。采用可执行jar选项的框架示例:Dropwizard,Spring Boot和Play(好吧,它不是在servlet容器上运行,而是嵌入了HTTP服务器)。
我的问题是,我们来自一个我们已经将我们的应用程序(到目前为止主要是Struts2)部署到单个tomcat应用程序服务器的环境中,如果我们计划使用嵌入式容器方法,需要进行哪些更改,最佳实践或注意事项?目前,我们在一台tomcat服务器上运行了大约10个本土应用程序,对于这些小型应用程序,共享资源并在一台服务器上进行管理的能力很好。我们的应用程序不打算分发给最终用户在其环境中运行。但是,如果我们决定利用更新的java框架,这种方法是否应该改变?向可执行jars的转变是否受到云部署(例如Heroku)的日益普及的刺激?
如果您具有在单个应用程序服务器上以 Play 部署方式管理多个应用程序的经验,而不是在单个应用程序服务器上管理传统的 war 文件部署,请分享您的见解。