最近使用oscach集群中,有些问题不甚了解,请各位提些建议。
现有的配置:
oscache.properties 中使用默认jgroup配置
cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener
cache.cluster.properties=UDP(mcast_addr=231.12.21.132;mcast_port=45566;ip_ttl=32;\
mcast_send_buf_size=150000;mcast_recv_buf_size=80000):\
PING(timeout=2000;num_initial_members=3):\
MERGE2(min_interval=5000;max_interval=10000):\
FD_SOCK:VERIFY_SUSPECT(timeout=1500):\
pbcast.NAKACK(gc_lag=50;retransmit_timeout=300,600,1200,2400,4800;max_xmit_size=8192):\
UNICAST(timeout=300,600,1200,2400):\
pbcast.STABLE(desired_avg_gossip=20000):\
FRAG(frag_size=8096;down_thread=false;up_thread=false):\
pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=true)
cache.cluster.multicast.ip=231.12.21.132
在启动两个测试节点后发现集群正常建立
-------------------------------------------------------
GMS: address is 172.16.3.98:3828
-------------------------------------------------------
2008-05-23 11:54:17 3344 INFO com.opensymphony.oscache.plugins.clustersupport.J
avaGroupsBroadcastingListener - JavaGroups clustering support started succes
sfully
2008-05-23 11:54:20 6532 INFO com.opensymphony.oscache.plugins.clustersupport.
JavaGroupsBroadcastingListener - A new member at address '172.16.3.98:3831'
has joined the cluster
然后在使用过程中发现,一个节点 Cache.putInCache(key,content) 加入缓存后,
在另一个节点并没有受到任何数据同步信息。但是一个节点 Cache.flushEntry(key) 后,
在另一个节点产生集群通知信息。
2008-05-23 11:54:42 28594 INFO com.opensymphony.oscache.plugins.clustersupport
.AbstractBroadcastingListener - Cluster notification (type=1, data=global_te
st) was received.
于是简单翻看了osccache 的Cache 和JavaGroupsBroadcastingListener源码发现;
在Cache的事件处理中,JavaGroupsBroadcastingListener 只是提供了 cacheflushXXX 相关的信息通知,
cacheEntryAdded,cacheEntryRemoved,cacheEntryUpdated都未做处理。
源码实现在 AbstractBroadcastingListener:
public void cacheFlushed(CachewideEvent event) {
if (!Cache.NESTED_EVENT.equals(event.getOrigin()) && !CLUSTER_ORIGIN.equals(event.getOrigin())) {
if (log.isDebugEnabled()) {
log.debug("cacheFushed called (" + event + ")");
}
//此处发送通知
sendNotification(new ClusterNotification(ClusterNotification.FLUSH_CACHE, event.getDate()));
}
}
// --------------------------------------------------------
// The remaining events are of no interest to this listener
// --------------------------------------------------------
public void cacheEntryAdded(CacheEntryEvent event) {
}
public void cacheEntryRemoved(CacheEntryEvent event) {
}
public void cacheEntryUpdated(CacheEntryEvent event) {
}
有此,产生了疑问,Oscache支持集群,那么他的数据同步机制在哪里?难道节点间数据同步需要自己来实现?
如果要自己实现的话,仅仅支持flush 通知这样的集群还有意义吗?
查看了oscache cluster的文档也没发现这方面的信息,请使用过oscache集群的高手们指教。
分享到:
相关推荐
NULL 博文链接:https://zhenghuazhi.iteye.com/blog/1135620
OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用...支持集群,集群缓存数
OSCache标记库由OpenSymphony设计,... 支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码。 缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要时)。
OSCache标记库由... (4) 支持集群:集群缓存数据能被单个的进行参数配置,不需要修改代码。 (5) 缓存过期:你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不能满足需要时)。
oscache-2.1.jar oscache-2.1.jar
javaweb做页面缓存常用,OSCache是一个工业级的J2EE缓存实现。OSCache不但能缓存java对象,还可以缓存页面,http请求和二进制内容,例如pdf文件等。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善...
OSCache是OpenSymphony这个开源项目众多Projects中的一个。他是一个高效的J2EE缓存框架,能够很好的解决动态网站速度的问题。
oscache缓存技术入门实例
OSCache学习例子 实例 很好的与j2ee结合
1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究
尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。 OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛...
本文叙述了如何使用oscanche,最后的配置需要在oscache.properties中完成
在 OSCache组件中提供了一个CacheFilter用于实现页面级的缓存,主要用于对web应用中的某些动态页面进行缓存,尤其是那些需要生成PDF 格式文件/报表、图片文件等的页面,不仅减少了数据库的交互、减少数据库服务器的...
使用oscache进行缓存,大大提高web系统运行效率
oscache.tld,oscahe.properties,oscache-2.1.jar,commons
oscache-java缓存框架插件和安装教程,使用教程一步到位
oscache-2.4.1.jar资源包,用于java缓存、jsp页面缓存
oscache的简单介绍
oscache的使用
缓存的JAVA应用,主要对部分内容于整个从库查询的数据进行缓存