我目前正在构建一个需要可伸缩的应用程序,因此我对分布式缓存而不是复制缓存感兴趣。我们将在常见的缓存用例中使用memcache。
然而,Hibernate和Spring Security ACL都依赖于EhCache,它似乎没有与memcache相同的复制方案,我担心无效逻辑。
我的应用服务器需要无状态才能很好地扩展,我想知道我是否需要在memcache上运行Hibernate和Acl,还是它们只存储临时数据?
谢谢你的帮助。
尼古拉斯。
发布于 2010-09-09 06:32:08
我目前正在构建一个需要可伸缩的应用程序,因此我对分布式缓存而不是复制缓存感兴趣。
你能详细说明一下吗?是什么让你认为复制缓存不能扩展?到了什么程度呢?
然而,Hibernate和Spring Security ACL都依赖于EhCache,它似乎没有与memcached相同的复制方案,我担心它的无效逻辑。
Hibernate使用EhCache作为默认的 L2缓存提供程序,但是L2缓存提供程序是可插入的。
关于您的担忧,请您再次详细说明:
我的应用服务器需要无状态才能很好地扩展,我想知道我是否需要在memcache上运行Hibernate和Acl,还是它们只存储临时数据?
缓存并不会让你变得有状态。对不起,我不明白你的问题。
虽然似乎可以将memcached用作Hibernate的L2 cache provider,但memcached并不是唯一的优势(它不是官方支持的,它是一个远程缓存,这意味着你总是通过网络发送东西,我甚至不知道它支持什么策略)。
我认为你应该澄清你的需求和你关心的问题。在它目前的状态下,我不能理解你写的所有东西。
顺便说一句,我可以告诉你,EhCache的伸缩性非常好,我在一个“大”的24+节点集群上使用过它,没有遇到任何问题(当然,“大”是相对的,但这看起来很不错)。
发布于 2010-09-09 01:21:33
您不会被强制使用任何一种缓存实现。虽然Ehcache是Spring事实上的CacheManager,但您可以很容易地为memcached连接不同的Ehcache并使用它。您还可以编写自己的MethodSecurityInterceptor来执行任何自定义缓存/无效逻辑。基本的Spring Security类是一个指南,但实际上只适用于它们非常通用的情况-我经常发现我必须为自定义应用程序逻辑编写自己的实现。
https://stackoverflow.com/questions/3669696
复制相似问题