OSCache文档-3.3在集群系统中使用OSCache

来源:百度文库 编辑:神马文学网 时间:2024/07/08 05:04:24

OSCache 2.0有个新特性是对集群缓存的支持.OSCache当前是搭载实现的,它允许你使用JavaGroups或JMS作为底层的广播协议.
跨集群机缓存仅在数据涌流发生事件发生时才广播消息。也就是是说,服务器缓存内容是相互独立的,但是无论何时一台服务器中内容成旧后,其它的也会认为是成旧的。因为我们不必将缓存的对象传到周边的集群机,所以它提供给我们一个很好的解决方案,再加上在集群系统中没有中心机来控制集群系统,故及群系统的鲁棒性非常好。
对一个集群系统配置OSCache非常简单。根据你选择的协议(JavaGroups或JMS)按照下面对应的操作进行即可完成配置.
JMS的配置
配置你的JMS服务器.OSCache需要一个JMS连接工厂和一个通过JNDI可以获得的主题.详情请参阅JMS服务器文档.
按照下面的格式将JMS广播协议监听器添加到你的oscache.properties :
[pre]cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JMSBroadcastingListener
[/pre](注意: JMS广播协议监听器要求JMS 1.1 或更高版本,然而,附带的也提供支持1.0.x的。如果你的JMS服务器仅支持JMS1.0.x,那请使用JMS1.0待替JMS广播协议监听器.其它的文档也适用于1.1和1.0版监听器)
The JMS listener supports the following configuration parameters:
JMS监听器支持下面配置参数:
 
• cache.cluster.jms.topic.factory - 邦定JMS主题连接工厂的JNDI名。这个应该和你JMS服务器中相匹配.典型的,它是这样的格式: "java:comp/env/jms/TopicConnectionFactory".
• cache.cluster.jms.topic.name - 用来让OSCache发送消息的JNDI名.这个应该和你JMS服务器中配置的名字相匹配.典型的格式为:"java:comp/env/jms/OSCacheTopic".
• cache.cluster.jms.node.name - 在集群机中一个唯一标识一个节点的名字.它用来防止节点处理自己的广播消息。每一个集群系统中的节点有一个不同的值,例如"node1","node2",....
如果你孤立的通过一个程序运行OSCache或没有InitialContext()可以发现你的JNDI InitialContextFactory 或提供者url的环境中时,你将必须在jndi.properties文件或者系统属性中来特别的设置它们。详情参阅InitalContext 文档.
JavaGroups配置
先确保你在classpath指定的目录下放置了jgroups-all.jar文件(例如webapp put it in WEB-INF/lib目录),并且按下面格式添加JavaGroups 广播协议到你的oscache.properties:
[pre]cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener
[/pre]在大多数情形下这样就可以了。OSCache将通过LAN广播任何数据涌流,由于文件大小的原因,jgroups-all.jar库不包含在分发的二进制包中,然而你可以通过下载完全的OSCache分发包或通过访问 JavaGroups website来获得.
如果你想在同一个LAN上运行多于一个的OSCache集群机,你必须使用不同的多播IP地址。这允许缓存存在分开的多播组中,其不会干扰其它的组.通过oscache.propertie文件 的cache.cluster.multicast.ip 属性可以设置你使用的IP。默认值为:231.12.21.132,然而你可以使用任何D类IP地址。D类地址在224.0.0.0 ~ 239.255.255.255之间.
如果你不仅仅想控制多播的属性(例如,设置网络时间溢出或TTL),你可以使用cache.cluster.properties 配置属性。使用该属性待替cache.cluster.multicast.ip property即可。缺省值为:
[pre]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)