我想知道是否有一种"平滑的方式"将Java WAR重新部署到生产服务器(没有集群,没有OSGi)?
我能想到的就是停止服务器,更新文件,重启服务器.事先10分钟,我需要在网站上显示维护警告.
你的方法是什么?
首先,热部署并不总是有效.我们花了很多时间来确保每个新模块都已加载并确定它不值得麻烦.所以你所做的可能听起来很糟糕,但这是部署新WAR的最可靠方式.
我们当前的方法是在所有服务器前面使用带负载均衡器的交换机.我们运行至少2个应用程序服务器实例.当我们关闭一台服务器进行维护时,流量会自动转到另一台服务器.
有些开关真的很便宜.如果您没有足够的负载来证明新盒子的合理性,那么您的2个实例可以在同一个盒子上运行.
在某些情况下,交换机实际上可以节省资金.例如,我们有一个SSL页面,过去常常使用6个盒子,现在它在2个盒子上运行正常,并且交换机中有SSL加速.