2011-01-08 195 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,但是你說,你沒有過任何控制...

所以我看到你的唯一辦法,是儘量減少開支並使用許多不同的緩存區域,並且只使緩存數據的一小部分無效(與現在使用的方式相同)。