2

我有一个使用 Tomcat6+Struts+Hibernate+MySql 的 Java Enterprise Web Application。目前它已公开启动并在单个服务器上运行。为了解决性能问题,我们应该将应用程序移至集群环境。无论如何我想使用Tomcat6集群如下:

  • 负载平衡机器,包括作为前端的 Web 服务器 (Apache+mod_proxy)
  • 一些应用服务器机器,每台运行一个 tomcat6 实例
  • 会话管理后端
  • 最后是一个数据库服务器

像这样的东西

这个

负载平衡器机器接收所有请求,并根据平衡算法将它们重定向到相应的 tomacat6 机器。完成业务部分后,响应将返回给网络服务器,最后返回给用户。在这种情况下,前端机器处理所有请求和响应,因此它将成为应用程序中的瓶颈点。

在 Apache Tomcat 集群中,有没有办法实现负载平衡机制和 Web 服务器?我的意思是在前端放置一个负载平衡器,并将请求/响应处理部分留给多个 Web 服务器。

4

1 回答 1

1

Tomcat 不支持内置集群。发生的是负载均衡器分发请求,因此各种 Tomcat 实例不需要知道发生了什么。

您要做的是确保您的应用程序可以处理它。例如,您必须意识到缓存可能是陈旧的。

假设实例 1 的缓存中有对象 X,并且 X 被实例 2 上处理的请求修改。实例 2 中的缓存将是正确的,来自实例 1 的缓存现在将是陈旧的。

解决方案是使用支持集群的缓存或对可修改的实例禁用缓存。但这对Tomcat无关紧要。

于 2011-06-28T07:37:49.540 回答