java可执行程序部署,java - 部署war文件的建议与包含embedded的可执行jar

一个有趣的问题。 这只是我对这个话题的看法,所以要把所有东西都拿出来。 我偶尔使用servlet容器和嵌入式服务器部署和管理应用程序。 我确信使用servlet容器还有很多很好的理由,但我会尽量关注它们今天不那么受欢迎的原因。

简短版本:Servlet容器非常适合在单个主机上管理多个应用程序,但对于仅管理一个应用程序似乎不太有用。 对于云环境,每个虚拟机的单个应用程序似乎更可取,更常见。 现代框架希望与云兼容,因此转向嵌入式服务器。

所以我认为云服务是放弃servlet容器的主要原因。 就像servlet容器一样,您可以管理应用程序,云服务可以让您管理虚拟机,实例,数据存储等等。 这听起来更复杂,但在云环境中,已经转向单一应用程序机器。 这意味着您可以经常将整个机器视为应用程序。 每个应用程序都在适当大小的计算机上运行。 云实例可以随时弹出并消失,这对扩展非常有用。 如果应用程序需要更多资源,则可以创建更多实例。

另一方面,专用服务器通常功能强大但具有固定大小,因此您可以在一台计算机上运行多个应用程序,以最大限度地利用资源。 管理数十个应用程序 - 每个应用程序都有自己的配置,Web服务器,路由和连接等 - 并不好玩,因此使用servlet容器可以帮助您保持一切可管理性和自己的理智。 虽然规模更难。 云中的Servlet容器似乎不太有用。 必须为每个小实例设置它们,而不提供太多价值,因为它们只管理单个应用程序。

此外,云很酷,非云的东西很无聊(如果我们仍然相信炒作)。 许多框架默认都是可扩展的,因此可以轻松地将它们部署到云端。 嵌入式服务器可以快速部署和运行,因此它们似乎是一种合理的解决方案 Servlet容器通常仍然受支持,但需要更复杂的设置。

其他一些观点:

嵌入式服务器可以针对框架进行优化,或者与框架工具(例如播放控制台)更好地集成。

并非所有云环境都带有可自定义的机器映像。 使用专用软件进行云应用程序部署更简单,而不是编写初始化脚本来下载和设置servlet容器。

我还没有找到一个Tomcat设置,它不会在你的应用程序的每次重新部署时出现perm gen space错误。 如果您几乎可以立即在暂存和生产实例之间切换而不停机,那么花一点时间(重新)启动嵌入式服务器就没有问题。

正如问题中已经提到的,最终用户运行应用程序非常方便。

嵌入式服务器便于携带,便于开发。 今天一切都很快,原型和MVP需要尽快创建和交付。 没有人愿意花太多时间为每个开发人员设置一个环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值