2008-05-07
分布式缓存问题解决(转)
关键字: 分布式解决数据库数据缓存的问题
缓存产品目标锁定在支持分布式应用的3种开源产品身上:JbossCache、OSCache和SwarmCache ,JbossCache采用数据复制策略,OSCache又大又全,重点在页面缓存上,SwarmCache 虽然很小巧,但分布式是核心,采用的是失效机制。最终采用SwarmCache 实现。全面了解一种开源产品,首要的是看它的文档了,随后的日志我会贴出他的Tutorial。
Hibernate3对各种缓存的提供了很好的支持,细看它的文档才发现它支持的额外3种缓存产品正好是上面列出的,EHCache是Hibernate 自身的缓存实现,不支持分布式应用。这下子倒免去了写CacheProvider的工作。下载swarmcache-1.0RC2a二进制和源码,将 jgroups-all.jar和swarmcache-1.0RC2.jar拷贝至 \WEB-INF\lib\下,
配置Hibernate.cfg.xml将provider_class换为指定的Provider
<property name="hibernate.cache.provider_class">net.sf.hibernate.cache.SwarmCacheProvider</property>
缓存产品目标锁定在支持分布式应用的3种开源产品身上:JbossCache、OSCache和SwarmCache ,JbossCache采用数据复制策略,OSCache又大又全,重点在页面缓存上,SwarmCache 虽然很小巧,但分布式是核心,采用的是失效机制。最终采用SwarmCache 实现。全面了解一种开源产品,首要的是看它的文档了,随后的日志我会贴出他的Tutorial。
Hibernate3对各种缓存的提供了很好的支持,细看它的文档才发现它支持的额外3种缓存产品正好是上面列出的,EHCache是Hibernate 自身的缓存实现,不支持分布式应用。这下子倒免去了写CacheProvider的工作。下载swarmcache-1.0RC2a二进制和源码,将 jgroups-all.jar和swarmcache-1.0RC2.jar拷贝至 \WEB-INF\lib\下,
配置Hibernate.cfg.xml将provider_class换为指定的Provider
<property name="hibernate.cache.provider_class">net.sf.hibernate.cache.SwarmCacheProvider</property>
打开查询缓存的支持
<property name="hibernate.cache.use_query_cache">true</property>
配置
<class-cache class="com.foo.YourCacheEntity" usage="nonstrict-read-write" region="cache.region"/>
关于最后一行配置的说明,因为SwarmCache不支持严格的读写缓存,所以要配置成nonstrict-read-write,各个缓存之间需要用名字隔离,如cache.region。
重新启动Tomcat后,SwarmCache中的组播服务启动:
-------------------------------------------------------
GMS: address is pysh:1967
-------------------------------------------------------
如果另外一个也作了同样配置的web启动,他们之间通过组播消息可以相互通知:
2006-09-19 17:49:06 INFO JavaGroupsCommunicator:76 - A host has joined the cache notification bus: pysh:1967
测试应用:
在机器A上,通过Hibernate对Entity做了修改,机器B得知缓存Entity已经无效,机器B会remove此缓存,重新从数据库里加载。
发表评论
- 浏览: 230365 次
- 性别:

- 来自: 深圳

- 详细资料
搜索本博客
我的相册
b48abcac33f225a880bb1b3a5950b3d5273e6852.jpg
共 10 张
共 10 张
最近加入圈子
最新评论
-
Chrome开发团队曝光 多人 ...
很好很强大
-- by jasin2008 -
用javascript与java进行RS ...
好强啊,谢谢了
-- by wv1124 -
分享下ubuntu 7.10的界面
把这些东西组装一下就于是有了我们的联想~
-- by citi.sh -
使用prototype.js选择选中 ...
用图片模拟实现超漂亮的选框checkbox效果 http://www.csspl ...
-- by goagrass -
名言系列(三)
如果想要获得成功,那么就需要对一个领域足够了解,热爱这个行业并保持热情.“如果想 ...
-- by sunxboy






评论排行榜