请给我建议,因为我遇到了以下情况,假设有一个客户端将请求发送到Apache服务器。
另一方面,有两个tomcat服务器在集群中的不同端口上并行运行,并且在这两个tomcat服务器上部署了相同的war文件。
现在的问题是,假设客户机将请求发送到apache服务器,apache服务器将请求发送到第一个tomcat,并且在第一个tomcat缓存被写入之后,第一个tomcat在写入缓存后关闭。
然后来自客户端的第二个请求再次到达apache服务器,然后apache服务器将其重定向两秒,因为第一个tomcat已关闭,它还会将第一个tomcat的缓存发送到第二个tomcat。请告诉我们如何实现此方案,
这样做的目的是,即使第一个tomcat宕机,我也不希望应用程序受到影响。我也在寻找最好的集群,可以在tomcat中发生,因为我期待来自最终客户端的大量流量
发布于 2018-02-04 01:18:48
看一看分布式缓存。他们解决了这类挑战。
选项包括:
Bozho's tech blog有一个很好的最新概述。你可能想读一读。
更新
您面临的挑战是,缓存的数据需要对所有Tomcat实例可用,并且如果在多个Tomcat实例上修改和查询缓存的数据,则需要保持一致。
这正是这些分布式缓存所提供的:
分布式缓存通常使用两个阶段的概念,其中一些数据保存在内存中,所有数据都保存在磁盘上。
因此,通过使用分布式cahce,您的第二个Tomcat实例可以在第一个实例宕机的情况下为该实例的客户端提供服务。
https://stackoverflow.com/questions/48599782
复制相似问题