2013-03-18 105 views
1

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

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

那么基本上,使用Tomcat集群是否有优势?如果是的话,我该如何实现所有tomcat服务器通用的模块。

+0

没有答案!!!这看起来不像是一个难题(或者是?!!!)。有人请让我知道如果我缺少像添加适当的标签或描述不明确等。谢谢。 – JProgrammer 2013-03-19 21:56:02

回答

0

阅读Tomcat configuration referenceclustering guide。可用的群集功能如下:

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

因此,通过集群,您将获得:

  • 高可用性:当一个节点发生故障,另一个将能够接管,而不会丢失数据访问。例如,HTTP会话仍然可以在用户不知道错误的情况下处理。
  • 服务器场部署:您可以将.war部署到单个节点,其余部分将自动同步。

的成本主要表现在:

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

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