在生产中顺利重新部署WAR?

ste*_*nos 11 java deployment production web-applications

我想知道是否有一种"平滑的方式"将Java WAR重新部署到生产服务器(没有集群,没有OSGi)?

我能想到的就是停止服务器,更新文件,重启服务器.事先10分钟,我需要在网站上显示维护警告.

你的方法是什么?

ZZ *_*der 8

首先,热部署并不总是有效.我们花了很多时间来确保每个新模块都已加载并确定它不值得麻烦.所以你所做的可能听起来很糟糕,但这是部署新WAR的最可靠方式.

我们当前的方法是在所有服务器前面使用带负载均衡器的交换机.我们运行至少2个应用程序服务器实例.当我们关闭一台服务器进行维护时,流量会自动转到另一台服务器.

有些开关真的很便宜.如果您没有足够的负载来证明新盒子的合理性,那么您的2个实例可以在同一个盒子上运行.

在某些情况下,交换机实际上可以节省资金.例如,我们有一个SSL页面,过去常常使用6个盒子,现在它在2个盒子上运行正常,并且交换机中有SSL加速.

  • 好问题.无状态服务器在这里需要很长时间,以至于我认为它是理所当然的.如果服务器中有状态,则必须在负载均衡器中执行一些技巧,例如基于源IP或cookie的粘性路由. (2认同)