2011-01-08 93 views
3

我有2个应用程序。第一个是通过其提供参考数据的Web应用程序。第二个是使用参考数据的基于ESB的应用程序。参考数据更改但不是非常频繁。我们需要缓存参考数据。网络应用程序(我不是所有者)使用hibernate。但是我的ESB应用程序没有。我们只使用EHCache。 当独立Web应用程序更改引用数据时,需要反映在ESB应用程序中。我们使用消息队列实现 - 即参考数据更改Web应用程序时向消息队列发送消息。我们的ESB应用程序侦听该消息&清除缓存&再次缓存数据。这是可行的。但它是时间密集型的。我如何使用Hibernate来改善情况?使用休眠缓存

问候, Subhendu

+0

@Subendru使用Hibernate不会解决这个问题。如果缓存清理得太频繁,那么您的参考数据实际上并不会像您期望的那样变化。如果重新填充缓存时间过长,则您可能只想清除缓存中已更改的条目。 – 2011-02-02 15:58:49

回答

1

不是一个真正的Hibernate的问题,从我所看到的。我会说这更多是关于缓存本身。因此,我建议您查看一些分布式缓存,特别是Infinispan。这样,两个应用程序都可以共享相同的缓存并对其进行处理。如果你只是使用Hibernate,但缓存仍然在不同的机器中,并且状态不同,那么你将面临同样的问题。

0

一种解决方案可能是在Hibernate应用程序使用的EHCache,但是你说,你没有过任何控制...

所以我看到你的唯一办法,是尽量减少开支并使用许多不同的缓存区域,并且只使缓存数据的一小部分无效(与现在使用的方式相同)。