2010-09-08 52 views
3

我目前正在構建一個需要擴展的應用程序,因此我對分佈式緩存感興趣,而不是複製緩存。我們將使用memcache來處理常見的緩存用例。Scaling EhCache

然而,Hibernate和Spring Security ACL都依賴EhCache,它似乎沒有與memcache相同的複製方案,我擔心失效邏輯。

我的應用程序服務器需要無狀態地擴展,我想知道是否需要在memcache上運行Hibernate和Acl,還是隻存儲瞬態數據?

感謝您的幫助。

Nicolas。

回答

0

你不會被迫使用任何一種緩存實現。雖然Ehcache對於Spring來說是事實上的,但是您可以輕鬆地爲Memcached導入不同的CacheManager,然後使用它。您也可以編寫自己的MethodSecurityInterceptor來執行任何自定義緩存/失效邏輯。基本的Spring Security類作爲指導,但實際上只適用於他們非常通用的情況 - 我經常發現我必須編寫自己的自定義應用程序邏輯實現。

4

我目前正在構建一個需要可擴展的應用程序,因此我對分佈式緩存感興趣,而不是複製緩存。

能否詳細說明一下?是什麼讓你認爲複製緩存不能擴展?並指出了什麼?

然而,Hibernate和Spring Security ACL都依賴於EhCache,它似乎沒有與memcached相同的複製方案,我擔心失效邏輯。

Hibernate使用的Ehcache作爲默認 L2緩存供應商,但二級緩存providres是可插入的。

關於您的問題,同樣,你可以請詳細說明:

  • 你有什麼打算準確緩存?
  • 什麼緩存策略,你需要得到支持(只讀?非嚴格讀寫你爲什麼要擔心?讀寫?交易?
  • ?你測量什麼?從什麼地方任何負面的反饋?

我的應用程序服務器需要無國籍具有良好的伸縮性和我想知道如果我需要在內存緩存運行休眠和ACL還是他們只存儲臨時數據?

緩存不作你有狀態,對不起,但我沒有忍受你的問題。

雖然memcached好像可以在Hibernate中使用memcached作爲L2 cache provider,但memcached並沒有優勢(它沒有官方的支持,它是一個遠程緩存,這意味着你總是通過網絡發送東西,我甚至沒有知道它支持什麼策略)。

我認爲你應該澄清你的要求和你的顧慮。在目前的狀態下,我不瞭解你寫的所有內容。順便說一下,我可以告訴你,EhCache可以很好地擴展,我已經在一個「大」24 +節點集羣上使用它,沒有麻煩(當然,「大」是相對的,但這看起來很不錯)。