1

目前我们在 4 个不同的 tomcat 实例上部署了相同的 Web 应用程序,每个实例都在独立的机器上运行。负载均衡器将请求分发到这些服务器。我们的 Web 应用程序进行数据库调用,维护缓存(键值对)。所有 tomcat 实例从相同的数据源(另一台服务器)读取相同的数据(XML)并将其提供给客户端。未来,我们计划从请求中收集一些使用数据,处理并存储在数据库中。此功能在所有 tomcat 服务器之间应该是通用的(一个模块)。

现在我们正在考虑使用tomcat集群。我做了一些研究,但我无法弄清楚如何分离数据获取操作,即从所有使其通用的 tomcat Web 应用程序的相同数据源(另一个服务器)部分读取相同的数据(XML)。因此,一旦一台服务器从服务器获取数据,它将对其进行维护(可能在缓存中),并且其他服务器可以使用相同的数据来为客户端提供服务。现在可以使用分布式缓存来实现此功能。但是还有其他模块可以在所有其他 tomcat 实例中通用。

所以基本上,使用Tomcat集群有什么好处吗?如果是,那么我如何实现所有 tomcat 服务器通用的模块。

4

1 回答 1

0

阅读 Tomcat配置参考集群指南。可用的聚类功能如下:

tomcat 集群实现提供会话复制、上下文属性复制和集群范围的 WAR 文件部署。

因此,通过聚类,您将获得:

  • 高可用性:当一个节点发生故障时,另一个节点将能够接管而不会失去对数据的访问权限。例如,仍然可以在用户没有注意到错误的情况下处理 HTTP 会话。
  • 农场部署:您可以将您的 .war 部署到单个节点,其余的将自动同步。

成本主要体现在性能上:

  • 复制意味着节点之间的对象序列化。在某些情况下这可能是不受欢迎的,但也可以微调.

如果您只想在节点之间共享一些状态,那么您根本不需要集群(除非您要使用上下文或会话复制)。只需使用数据库和/或分布式缓存模型,如 ehcache(或其他任何东西)。

于 2013-03-21T17:36:06.180 回答