gpt4 book ai didi

performance - Java Web 应用程序短期缓存

转载 作者:行者123 更新时间:2023-11-28 23:33:05 25 4
gpt4 key购买 nike

我需要开发一个 Spring Web 应用程序,它需要根据特定条件(位置)查询遗留系统。为了减少遗留系统的负载,我们希望每 30 秒提取一次查询中所有位置的数据,并保留在内存中以满足客户请求。客户端会定期(每分钟)刷新一次。 Web 应用程序不会向数据库写入任何内容。

应用程序被部署到一个至少有两个节点的 tomcat 集群中。

在上述场景中,实现内存数据存储的最佳方式是什么?我们只想在一个 tomcat 节点(比如主节点)中执行查询,并将数据同步到另一个节点(比如辅助节点)。当主节点宕机时,从节点应该开始执行查询来为客户端提供服务。

最佳答案

In the above scenario what is the best way to implement in-memory data-store?

您可以使用任何分布式缓存,例如 EHCACHETerracotta .通过正确的配置,缓存数据将被复制到 Tomcat 集群中的所有服务器。

We want to execute the query in only one tomcat node.

由于您使用的是 Tomcat 集群,集群服务器很可能已经在某种负载平衡器后面,您的应用程序很可能通过 http://www.domain.com 访问。这意味着,负载均衡器会自动将对 www.domain.com 上 URL 的每个请求路由到集群服务器之一。

一个简单的策略是使用 HTTP 调用刷新缓存,例如 curl http://www.domain.com/cache/refresh。由于此调用将通过负载平衡器,因此无论何时调用,它都会自动路由到 Tomcat 集群中的其中一台服务器。

现在,只需配置一个 cronjob 以您想要的频率点击缓存刷新 URL。可以在您的其中一台服务器上配置 cronjob,或者使用许多可用的基于 Web 的 cron 服务之一。

关于performance - Java Web 应用程序短期缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27993719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com