首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个tomcat共享缓存,故障情况下相互支持

问两个tomcat共享缓存,故障情况下相互支持
EN

Stack Overflow用户
提问于 2018-02-04 01:00:47
回答 1查看 208关注 0票数 0

请给我建议,因为我遇到了以下情况,假设有一个客户端将请求发送到Apache服务器。

另一方面,有两个tomcat服务器在集群中的不同端口上并行运行,并且在这两个tomcat服务器上部署了相同的war文件。

现在的问题是,假设客户机将请求发送到apache服务器,apache服务器将请求发送到第一个tomcat,并且在第一个tomcat缓存被写入之后,第一个tomcat在写入缓存后关闭。

然后来自客户端的第二个请求再次到达apache服务器,然后apache服务器将其重定向两秒,因为第一个tomcat已关闭,它还会将第一个tomcat的缓存发送到第二个tomcat。请告诉我们如何实现此方案,

这样做的目的是,即使第一个tomcat宕机,我也不希望应用程序受到影响。我也在寻找最好的集群,可以在tomcat中发生,因为我期待来自最终客户端的大量流量

EN

回答 1

Stack Overflow用户

发布于 2018-02-04 01:18:48

看一看分布式缓存。他们解决了这类挑战。

选项包括:

  • Ehcache/Terracotta
  • Redis
  • Memcached
  • Hazelcast

Bozho's tech blog有一个很好的最新概述。你可能想读一读。

更新

您面临的挑战是,缓存的数据需要对所有Tomcat实例可用,并且如果在多个Tomcat实例上修改和查询缓存的数据,则需要保持一致。

这正是这些分布式缓存所提供的:

  1. 将修改后的数据写入共享存储或将其发送到其他实例,以便在需要时可供其他实例使用。
  2. 保持分布式数据的一致性,这样任何Tomcat实例都不会使用过时的数据或以破坏Tomcat的方式对其进行修改

分布式缓存通常使用两个阶段的概念,其中一些数据保存在内存中,所有数据都保存在磁盘上。

因此,通过使用分布式cahce,您的第二个Tomcat实例可以在第一个实例宕机的情况下为该实例的客户端提供服务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48599782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档