tomcat web-application的硬件推荐

我们在我们的testing系统(CentOS)上运行一个Web应用程序 – 一个Web服务器(apache),两个运行相同Web应用程序的Tomcat实例,一个PostgreSQL数据库,每个都在四个虚拟服务器上运行。 该应用程序[意味着]成千上万的用户使用,也需要一些敏感的用户数据存储。 我们正在计划将这一function转移到生产系统中,并就如何为此functionselect正确的硬件寻求一些build议。 我非常乐意接受任何有效且适合这种环境的build议(虚拟机或专用或混合)。 我想我正在寻找的是instant failover 。 任何人可以build议我一个规格和任何额外的设备(S)可能需要运行这些服务?

几件事在我心中:对于数据库服务器,我正在考虑一个专用的服务器 – 为系统磁盘镜像的RAID 1和为数据库(本地存储)的RAID10。 或者我们应该去FC与共享存储? 最快的tomcat磁盘(这是瓶颈 – 不是吗?),用于Web服务器故障转移的循环DNS以及每个networking的I / O带宽专用GbE。 但是我非常感兴趣的是看看其他人如何devise他们的系统(CPU,RAM,额外的硬件,过程等),牢记这个需求。 任何input的欢迎和非常感谢。 提前致谢。 干杯!!

在httpd / tomcat端,我们这样做的方式是:

在一台服务器上,在不同的端口上运行一个httpd和两个tomcat实例。 我们使用mod_jk通过ajp与tomcats进行通信,并configurationmod_jk以在两者之间进行负载平衡(或者在某些情况下,主动/被动故障切换并让mod_jk计算何时进行故障切换)。

我们运行上面的多个服务器实例,前面有一个实际的硬件负载均衡器,与所有的httpds进行通信。 为了处理硬件负载平衡器的单点故障,我们在不同的数据中心复制整个设置,然后使用DNS游戏来使用Dynect在地理上负载均衡(也可以将负载转移到其他数据中心在失败期间)。

部分原因是,我们在每台服务器上运行两个tomcat实例,这样我们就可以更轻松地将软件更新应用到应用程序,而不会影响我们处理峰值负载的能力。 是的,这使得我们有两倍的内存需求,但是这比将系统的数量增加一倍来操作我们的操作要便宜得多。

在你的设置中,你正在处理单个tomcat服务器死亡的情况,而不是前端httpd。 您可能会更好地构build一对使用heartbeat / corosync / pacemaker来处理前端故障转移的前端httpd服务器。 这不会是“即时故障转移”,但它会接近它。 随着事情的转变,大多数人都可以容忍几秒钟的时间。