有没有办法用Apache和Tomcat设置单个服务器,允许像往常一样将servlet请求传递给Tomcat,但是当需要重新启动或重新部署时,
使用新的warfile启动第二个实例
等待,直到它实际上准备好提供请求而没有通常的随机错误和响应似乎是Tomcat在发布后的前几分钟的标准
干净地将新的servlet请求从Tomcat#1切换到Tomcat#2。没有参加会议。如果连接器只是退出向Tomcat#1发送新请求,等待几秒钟,然后完全断开Tomcat#1,那就没关系了。
观察日志,确保Tomcat#2(使用新代码)正常工作
如果出现问题,立即切换回Tomcat#1,如果Tomcat#2没问题,则关闭Tomcat#1?
我在这里和其他地方看到了很多例子,但它们似乎都有一个致命的缺陷:第二个实例在Tomcat准备好之前大约30秒开始处理请求。
是否有一个AJP替代方案可以增加一些额外的智能,比如不将服务器#2引入方程式,直到它真正起作用,如果它发现没有Tomcat实例似乎是返回Apache本身提供的备用内容工作正常吗?
另外,请注意(至少此时),我不是要尝试实现负载均衡或自动故障转移。我只是试图找到一种方法来无缝地启动Tomcat重启,而没有任何人注意到#1运行直到#2准备取代它。整个过程本身将受到监控并亲自参与。