【发布时间】:2013-05-04 09:52:41
【问题描述】:
我编写了一个 bash 脚本,以便在触发时将 Web 应用程序自动部署到 tomcat 容器。这很简单:
- 转储当前数据库以进行备份
- 关闭当前的tomcat进程
- 删除网络应用程序文件夹
- 用新的替换war文件
- 再次启动 tomcat
但是,现在我想要一个后备。如果启动过程中出现问题,将恢复数据库并重新部署旧的war文件。
我的问题是我不知道网络应用程序何时无法启动。我的一个实现是我将检查我的 Web 应用程序的日志文件的大小,如果一段时间后它没有增加(这意味着没有写入任何内容),那么系统应该知道部署失败,我们应该恢复旧的网络应用程序。但是,这有点脏,我不确定如果我的日志文件在那个时候滚动正确会发生什么。
tomcat 是否有任何机制来支持 web 应用程序的启动失败检测?
【问题讨论】:
-
@home:感谢您的关注,但我想在服务器机器的上下文中检查部署是否成功,而不是通过 Web 访问。有没有办法在服务器上下文中检索相同的信息,或者我真的需要 curl 来获取它?
-
AFAIK,服务器(操作系统+硬件)不知道应用程序状态,因为您的应用程序“只是”运行 Tomcat 的 JVM 实例的一部分以及您的应用程序(只有一个 java 进程) .另一种方法是在您的应用程序中实现某种“探针”servlet。这使您能够测试的不仅仅是技术上的“活跃”状态(例如数据库可用性)。
标签: java bash tomcat web-applications