OSCache 2.0有個(gè)新特性是對集群緩存的支持.OSCache當前是搭載實(shí)現的,它允許你使用JavaGroups或JMS作為底層的廣播協(xié)議.
跨集群機緩存僅在數據涌流發(fā)生事件發(fā)生時(shí)才廣播消息。也就是是說(shuō),服務(wù)器緩存內容是相互獨立的,但是無(wú)論何時(shí)一臺服務(wù)器中內容成舊后,其它的也會(huì )認為是成舊的。因為我們不必將緩存的對象傳到周邊的集群機,所以它提供給我們一個(gè)很好的解決方案,再加上在集群系統中沒(méi)有中心機來(lái)控制集群系統,故及群系統的魯棒性非常好。
對一個(gè)集群系統配置OSCache非常簡(jiǎn)單。根據你選擇的協(xié)議(JavaGroups或JMS)按照下面對應的操作進(jìn)行即可完成配置.
JMS的配置
配置你的JMS服務(wù)器.OSCache需要一個(gè)JMS連接工廠(chǎng)和一個(gè)通過(guò)JNDI可以獲得的主題.詳情請參閱JMS服務(wù)器文檔.
按照下面的格式將JMS廣播協(xié)議監聽(tīng)器添加到你的oscache.properties :
[pre]cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JMSBroadcastingListener
[/pre](注意: JMS廣播協(xié)議監聽(tīng)器要求JMS 1.1 或更高版本,然而,附帶的也提供支持1.0.x的。如果你的JMS服務(wù)器僅支持JMS1.0.x,那請使用JMS1.0待替JMS廣播協(xié)議監聽(tīng)器.其它的文檔也適用于1.1和1.0版監聽(tīng)器)
The JMS listener supports the following configuration parameters:
JMS監聽(tīng)器支持下面配置參數:
• cache.cluster.jms.topic.factory - 邦定JMS主題連接工廠(chǎng)的JNDI名。這個(gè)應該和你JMS服務(wù)器中相匹配.典型的,它是這樣的格式: "java:comp/env/jms/TopicConnectionFactory".
• cache.cluster.jms.topic.name - 用來(lái)讓OSCache發(fā)送消息的JNDI名.這個(gè)應該和你JMS服務(wù)器中配置的名字相匹配.典型的格式為:"java:comp/env/jms/OSCacheTopic".
• cache.cluster.jms.node.name - 在集群機中一個(gè)唯一標識一個(gè)節點(diǎn)的名字.它用來(lái)防止節點(diǎn)處理自己的廣播消息。每一個(gè)集群系統中的節點(diǎn)有一個(gè)不同的值,例如"node1","node2",....
如果你孤立的通過(guò)一個(gè)程序運行OSCache或沒(méi)有InitialContext()可以發(fā)現你的JNDI InitialContextFactory 或提供者url的環(huán)境中時(shí),你將必須在jndi.properties文件或者系統屬性中來(lái)特別的設置它們。詳情參閱InitalContext 文檔.
JavaGroups配置
先確保你在classpath指定的目錄下放置了jgroups-all.jar文件(例如webapp put it in WEB-INF/lib目錄),并且按下面格式添加JavaGroups 廣播協(xié)議到你的oscache.properties:
[pre]cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener
[/pre]在大多數情形下這樣就可以了。OSCache將通過(guò)LAN廣播任何數據涌流,由于文件大小的原因,jgroups-all.jar庫不包含在分發(fā)的二進(jìn)制包中,然而你可以通過(guò)下載完全的OSCache分發(fā)包或通過(guò)訪(fǎng)問(wèn) JavaGroups website來(lái)獲得.
如果你想在同一個(gè)LAN上運行多于一個(gè)的OSCache集群機,你必須使用不同的多播IP地址。這允許緩存存在分開(kāi)的多播組中,其不會(huì )干擾其它的組.通過(guò)oscache.propertie文件 的cache.cluster.multicast.ip 屬性可以設置你使用的IP。默認值為:231.12.21.132,然而你可以使用任何D類(lèi)IP地址。D類(lèi)地址在224.0.0.0 ~ 239.255.255.255之間.
如果你不僅僅想控制多播的屬性(例如,設置網(wǎng)絡(luò )時(shí)間溢出或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)
聯(lián)系客服