我们有不同的客户端应用程序,每个客户端应用程序都定义了自己的缓存,但是他们希望通过HTTP(其余)访问/管理其缓存。在这种情况下,所有缓存都在Web服务器容器(不是集群的1个节点)中,该容器公开了Web服务Rest API来管理/访问缓存操作。
几个客户端应用程序正在访问自己的缓存,但都通过相同的Web服务休息界面访问。
当客户端应用程序处理大量缓存时,我们可能会遇到性能问题,这可能是由于HTTP / REST和网络开销所致。
有人知道如何避免这种性能问题吗?
我们使用Apache Karaf 4.1.5作为容器,使用Ehcache 2.x
答案 0 :(得分:3)
为什么没有所有客户端Web应用都使用其自己的缓存?
在同一服务器上调用REST API来检索您的专用缓存,这就像在浪费CPU周期和无用的网络。
答案 1 :(得分:1)
将缓存放入一个包中,并使用OSGi服务公开它。在运行时,调用OSGi服务与调用java方法一样快。就像Henri解释的那样,这应该避免http和REST开销。
或者,您也可以将缓存作为库并在每个需要它的包中实例化。据我了解,您希望不共享缓存,这可能会更好。