java - Tomcat集群的优缺点

标签 java tomcat tomcat7 cluster-computing ehcache

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

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

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

最佳答案

阅读 Tomcat configuration referenceclustering guide .可用的聚类功能如下:

The tomcat cluster implementation provides session replication, context attribute replication and cluster wide WAR file deployment.

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

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

成本主要在性能方面:

  • 复制意味着节点之间的对象序列化。这在某些情况下可能是不希望的,但也有可能 fine tune .

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

关于java - Tomcat集群的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15484333/

相关文章:

java - 在 HTC 设备上深度测试绘图问题

tomcat - 不可恢复的 key 异常

maven - tomcat-maven-plugin 403错误

tomcat - IntelliJ Idea 11 - 如何扩展Tomcat服务器Stacktrace

java - 获取 SQLException : Driver:org. hsqldb.jdbcDriver 返回了 tomee 中 URL 的 null

java - Tomcat 7 支持 MDB 监听器吗?

java - 如何使用方法从 Map 返回值?

java - 在java中编辑Android xml资源文件的内容

java - 尝试使用 Tomcat 在 Windows 中安装 openCMS,它显示 404 错误

java - 如何制作一个看起来像Windows侧边栏上当前可用的窗口小部件的java小部件?使用哪个 Java API?