集中式EhCache

时间:2018-08-21 17:02:06

标签: apache-camel ehcache apache-karaf

我们有不同的客户端应用程序,每个客户端应用程序都定义了自己的缓存,但是他们希望通过HTTP(其余)访问/管理其缓存。在这种情况下,所有缓存都在Web服务器容器(不是集群的1个节点)中,该容器公开了Web服务Rest API来管理/访问缓存操作。

几个客户端应用程序正在访问自己的缓存,但都通过相同的Web服务休息界面访问。

当客户端应用程序处理大量缓存时,我们可能会遇到性能问题,这可能是由于HTTP / REST和网络开销所致。

有人知道如何避免这种性能问题吗?

我们使用Apache Karaf 4.1.5作为容器,使用Ehcache 2.x

2 个答案:

答案 0 :(得分:3)

为什么没有所有客户端Web应用都使用其自己的缓存?

在同一服务器上调用REST API来检索您的专用缓存,这就像在浪费CPU周期和无用的网络。

答案 1 :(得分:1)

将缓存放入一个包中,并使用OSGi服务公开它。在运行时,调用OSGi服务与调用java方法一样快。就像Henri解释的那样,这应该避免http和REST开销。

或者,您也可以将缓存作为库并在每个需要它的包中实例化。据我了解,您希望不共享缓存,这可能会更好。