2009-02-19 54 views
8

我目前正在研究如何使用RMI分發選項中的Ehcache的。我配置正確ehcache.xml和複製似乎工作正常。不過我有2個問題:的Ehcache /休眠和RMI的複製與大量實體

- >看來的Ehcache /休眠狀態創建每個實體1級緩存。這很好,但是當複製到位時,它會創建1個線程/緩存進行復制。這是預期的行爲?由於我們的域是大,它創建約300個線程,在我看來,真正的大

- >另一個討厭的後果是心跳messagre似乎聚合所有的高速緩存的名字。從我看到的消息應該適合1500字節,它不會導致這條消息在我的日誌中:心跳不起作用。配置較少的高速緩存進行復制。大小是1747,但不應該大於1500。任何想法如何可以改變?

非常感謝您的幫助

回答

3

我們已經有一個黑客在這裏我們有覆蓋buildCache()來創建我們的名字縮短自己的高速緩存對象(名稱的哈希)休眠EhCacheProvider我們自己的自定義副本。這得到了1500的限制。我們使用哈希名稱保留原始名稱的哈希映射以進行反向查找。

我們前一段時間做了這一點,並一直在使用它在生產中。

我們也看了你的其他問題有一個單一的複製線程。首先,我們複製了RMICacheReplicatorFactory並更改了createCacheEventListener()以返回我們修改的RMIAsynchronousCacheReplicator的副本,方法是將replicationThread字段設置爲static,然後爲此創建必要的修補程序。我們沒有得到徹底的測試或將其投入生產,但正在重新審視這是我如何找到這篇文章:)

2

您認爲JBossCache是​​EHcache的替代方案嗎? JBossCache具有分佈式事務處理能力,並且已經在高負載下進行了充分測試。它具有較低級別的複製機制,可以讓您使用UDP或TCP多播/廣播複製。

0

jms複製是一個選項嗎?我一直在尋找與異步行爲一起使用它,它工作的很好,文檔是錯誤的,所以我必須檢查源代碼才能看到正確配置它的實際屬性.JMS的好處是,如果你有基礎設施的建立你沒有配置任何防火牆等,通過讓它)

+0

JMS沒有接近實時的地方,任何更新緩存的傳輸都必須是實時的。 – 2009-05-31 10:46:44

+0

如果您只設置了一個defaultcache,那麼將會克隆它以創建每個必需的實體高速緩存。 AFAIK,你不會得到「一個大緩存」。 – 2009-11-06 19:33:22

0

順便說一下,1500字節的限制已經解決了Ehcache 1.7 .1發佈ehcache-core。見EHC-424