如果我只使用Tomcat并且服务器宕机,那么我有哪些选项可以使应用程序看起来像正在运行一样?



我正在考虑使用一个只有一个服务器的架构,这个服务器将是Tomcat(而不是带Tomcat的Apache)。

如果Tomcat宕机或内存不足,我该怎么办?

  1. 用最快的方式提醒我?
  2. 确保当用户尝试访问应用程序时仍然有一些专业的页面
  3. 如果可能的话,给自己一段时间来修复发生了什么,而不被用户发现?

要检查服务的可用性,我建议您使用Nagios。

Nagios的插件会不断检查所配置服务的状态,并在服务中断时发出警报。提醒可以是短信、邮件等

    关于监控,我同意其他海报对Nagios的建议。但是,Hyperic是一个更复杂的Java程序监控解决方案,它为Tomcat和其他数百个程序预先配置,因此绝对值得一看。Hyperic还可以通过监视内存池,在服务器oom之前给您发送邮件。
  1. 对于2和3,我将在应用程序的Tomcat实例前面放置一个反向代理/负载均衡器(请参阅集群)。看看Pound,它是一个不错的轻量级解决方案,也可以做https包装,粘性会话等。

如果Tomcat是服务器上唯一处理HTTP请求的东西(您的问题似乎表明了这一点),那么您将无法显示页面——什么将为页面提供服务?

我想你可以写一些看门狗程序,它可以定期访问Tomcat服务器上的URL,如果没有得到响应,做一些事情:

  • 给你发邮件。
  • 启动一个简单的服务器,只提供静态HTML
  • 重启tomcat

当然,您可以使用外部监控工具来检查Tomcat是否处于活动状态,如果不是,则警告您

要为页面提供服务,服务器必须正在运行。所以典型的解决方案是以某种方式实现负载平衡。您可以使用专用负载均衡器或软件负载均衡。无论哪种方式,其思想都是负载均衡器跟踪您的服务器并适当地转发用户。在您描述的情况下,平衡器将而不是将用户发送到"关闭"服务器。它将把用户发送到集群中剩余的可用服务器。如果集群中的所有服务器都脱机,那么平衡器会将用户发送到一个"热备",该"热备"将为您的"不可用"页面提供服务。

Tomcat>=5.5支持基本负载平衡,称为"集群"。你可以在其他地方读到。但是它不能提供热备功能。一个流行的软件解决方案是Nginx。就我个人而言,我更喜欢使用Lighttpd作为软件平衡器,但它不支持粘性会话(目前)。

相关内容

最新更新