最佳答案
目前 Java 领域似乎有一种趋势,即从以 war 文件(或 ear 文件)的形式将 Java Web 应用程序部署到 java servlet 容器(或应用服务器) ,转而将应用程序打包为可执行 jar,并嵌入 servlet/HTTP 服务器(如 jetty)。我的意思是,更新的框架正在影响新应用程序的开发和部署,而不是应用程序如何交付给最终用户(因为,例如,我明白为什么 Jenkins 使用嵌入式容器,非常容易抓取和使用)。采用可执行 jar 选项的框架示例: DropWizard 、 弹簧靴和 演奏(它不在 servlet 容器上运行,但是 HTTP 服务器是嵌入式的)。
我的问题是,在一个环境中,我们已经将我们的应用程序(到目前为止主要是 Struts2)部署到单个 tomcat 应用程序服务器上,如果我们计划使用嵌入式容器方法,需要做哪些更改、最佳实践或考虑因素?目前,我们有大约10个自主开发的应用程序运行在单个 tomcat 服务器上,并且适用于这些小型应用程序 能够在一台服务器上共享资源并进行管理是很好的。我们的应用程序不打算分发给最终用户,以便在他们的环境中运行。然而,如果我们决定利用一个更新的 Java 框架,这种方法是否应该改变?云部署(例如 Heroku)的使用越来越多,是否刺激了向可执行 jar 的转变?
如果您有过在一个应用服务器上以 Play 部署方式管理多个应用程序的经验,而不是传统的 war 文件部署方式,请与我们分享您的见解。