Java Web 应用程序监督和容错

Posted

技术标签:

【中文标题】Java Web 应用程序监督和容错【英文标题】:Java web applications supervision and faulttolerance 【发布时间】:2012-02-20 09:34:14 【问题描述】:

注意:这个问题的作者有一些Java背景,但是在Java EE方面是一个完全的新手。

我想知道是否有成熟的工具来监督 Java Web 应用程序。

例如,如果我有两台 Java 服务器(我们称它们为 1 和 2),运行在不同的物理机器上,它们写入另一台物理机器上的 mysql 数据库,以及一个经常从中读取的主 Web 应用程序数据库:

如何监管服务器 1 和 2?如果服务器崩溃,是否可以自动重启服务器?有没有办法像 Erlang/OTP 那样管理它们?

【问题讨论】:

【参考方案1】:

Service wrapper 有利于重启,并且有很多工具可以监控 Java 服务器的健康状况。 Java 提供了 JMX 扩展,它允许洞察(和管理)JVM 和服务器环境中的几乎所有内容。甚至还有 JRE (jConsole) 提供的通用监控控制台

如果您需要更多服务,可以使用 hyperic - 这是一个非常不错的仪表板,可以为您提供大量信息和开箱即用的监控探针。

【讨论】:

【参考方案2】:

虽然不等同于 Erlang 的主管,但如果 VM 崩溃或无响应,您可以使用 Java Service Wrapper (http://wrapper.tanukisoftware.com/) 重新启动 JVM。

【讨论】:

以上是关于Java Web 应用程序监督和容错的主要内容,如果未能解决你的问题,请参考以下文章

Erlang模块supervisor翻译

使用 Erlang/OTP 构建容错软实时 Web 应用程序

Erlang 容错应用:CAP 的 PA 还是 CA?

您如何设计基于Erlang / OTP的分布式容错多核系统的架构?

java程序容错

每个主管有多少工人?