Bri*_*ace 81 java war playframework dropwizard spring-boot
java空间中似乎有一种趋势,即不再以war文件(或ear文件)的形式将java Web应用程序部署到java servlet容器(或应用程序服务器),而是将应用程序打包为可执行jar.像jetty这样的嵌入式servlet/HTTP服务器.我的意思是,更新的框架影响新应用程序的开发和部署方式,而不是如何将应用程序交付给最终用户(因为,例如,我知道Jenkins使用嵌入式容器,非常容易抓住和去).采用可执行jar选项的框架示例: Dropwizard,Spring Boot和Play (它不是在servlet容器上运行,而是嵌入了HTTP服务器).
我的问题是,来自我们已经将我们(直到这一点,主要是Struts2)应用程序部署到单个tomcat应用程序服务器的环境,如果我们计划使用嵌入式容器方法,需要做出哪些更改,最佳实践或注意事项?目前,我们在单个tomcat服务器上运行大约10个自行开发的应用程序,对于这些小型应用程序,共享资源并在一台服务器上进行管理的能力很不错.我们的应用程序无意分发给最终用户以在其环境中运行.但是,如果我们决定利用更新的Java框架,那么这种方法会改变吗?越来越多地使用云部署(例如Heroku)刺激了对可执行jar的转变?
如果您有使用Play风格的部署管理多个应用程序而不是单个应用程序服务器上的传统war文件部署的经验,请分享您的见解.
kap*_*pex 74
一个有趣的问题.这只是我对这个话题的看法,所以要把所有东西都拿出来.我偶尔使用servlet容器和嵌入式服务器部署和管理应用程序.我确信使用servlet容器还有很多很好的理由,但我会尽量关注它们今天不那么受欢迎的原因.
简短版本:Servlet容器非常适合在单个主机上管理多个应用程序,但对于仅管理一个应用程序似乎不太有用.对于云环境,每个虚拟机的单个应用程序似乎更可取,更常见.现代框架希望与云兼容,因此转向嵌入式服务器.
所以我认为云服务是放弃servlet容器的主要原因.就像servlet容器一样,您可以管理应用程序,云服务可以让您管理虚拟机,实例,数据存储等等.这听起来更复杂,但在云环境中,已经转向单一应用程序机器.这意味着你经常可以把整机像它的应用程序.每个应用程序都在适当大小的计算机上运行.云实例可以随时弹出并消失,这对扩展非常有用.如果应用程序需要更多资源,则可以创建更多实例.
另一方面,专用服务器通常功能强大但具有固定大小,因此您可以在一台计算机上运行多个应用程序,以最大限度地利用资源.管理数十个应用程序 - 每个应用程序都有自己的配置,Web服务器,路由和连接等 - 并不好玩,因此使用servlet容器可以帮助您保持一切可管理性和自己的理智.虽然规模更难.云中的Servlet容器似乎不太有用.必须为每个小实例设置它们,而不提供太多价值,因为它们只管理单个应用程序.
此外,云很酷,非云的东西很无聊(如果我们仍然相信炒作).许多框架默认都是可扩展的,因此可以轻松地将它们部署到云端.嵌入式服务器可以快速部署和运行,因此它们似乎是一种合理的解决方案 Servlet容器通常仍然受支持,但需要更复杂的设置.
其他一些观点:
| 归档时间: |
|
| 查看次数: |
15722 次 |
| 最近记录: |