Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Java web应用程序短期缓存_Performance_Spring Mvc_Tomcat_Distributed Caching - Fatal编程技术网

Performance Java web应用程序短期缓存

Performance Java web应用程序短期缓存,performance,spring-mvc,tomcat,distributed-caching,Performance,Spring Mvc,Tomcat,Distributed Caching,我需要开发一个SpringWeb应用程序,它需要根据特定的条件查询遗留系统。为了减少遗留系统的负载,我们希望在单个查询中每隔30秒提取所有位置的数据,并将其保留在内存中以满足客户机请求。客户端每分钟都会定期刷新。Web应用程序不向数据库写入任何内容 应用程序部署到至少有两个节点的tomcat集群 在上述场景中,实现内存数据存储的最佳方式是什么?我们只希望在一个tomcat节点(如主节点)中执行查询,并将数据同步到另一个节点(如次节点)。当主节点停机时,辅助节点应开始执行查询以服务于客户端 In

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

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

在上述场景中,实现内存数据存储的最佳方式是什么?我们只希望在一个tomcat节点(如主节点)中执行查询,并将数据同步到另一个节点(如次节点)。当主节点停机时,辅助节点应开始执行查询以服务于客户端

In the above scenario what is the best way to implement in-memory data-store?
您可以使用任何分布式缓存,例如,或。通过正确的配置,缓存的数据将被复制到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服务之一。

谢谢Manish。听起来是一个简单而完美的解决方案。让我试试。顺便说一下,我们正在使用Hazelcast进行缓存。