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

OSCache 2.0有个新特性是对集群缓存的支持.OSCache当前是搭载实现的,它允许你使用JavaGroups或JMS作为底层的广播协议.

跨集群机缓存仅在数据涌流发生事件发生时才广播消息。也就是是说,服务器缓存内容是相互独立的,但是无论何时一台服务器中内容成旧后,其它的也会认为是成旧的。因为我们不必将缓存的对象传到周边的集群机,所以它提供给我们一个很好的解决方案,再加上在集群系统中没有中心机来控制集群系统,故及群系统的鲁棒性非常好。

对一个集群系统配置OSCache非常简单。根据你选择的协议(JavaGroups或JMS)按照下面对应的操作进行即可完成配置.

JMS的配置

配置你的JMS服务器.OSCache需要一个JMS连接工厂和一个通过JNDI可以获得的主题.详情请参阅JMS服务器文档.

按照下面的格式将JMS广播协议监听器添加到你的oscache.properties :

cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JMSBroadcastingListener

(注意: 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:

cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener

在大多数情形下这样就可以了。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即可。缺省值为:

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)

参阅JavaGroups网站获取更多信息。特别的,请查阅文档频道的User's Guide

你可能感兴趣的:(thread,tomcat,cache,jms,网络协议)