oscache集羣環境下的數據同步問題
在我們的web應用中,大家可能經常會用到oscache來緩存數據。但是當你的應用服務器是集羣環境的情況下,通常會有數據不同步的問題。爲了解決這樣的問題,可以利用IP組播實現集羣環境下的節點間緩存數據的同步。
經過在2臺PC機上分別啓動tomcat,運行庫存web應用,調用被緩存的方法,然後在其中一臺更改緩存的結果,經測試,另一臺的緩存被同步更新了。
這爲集羣環境下,各節點的同步提供了新的解決途徑。
OSCache緩存組件提供了在集羣下進行同步的支持。
只要在oscache.properties文件裏添加如下內容就可以了,其中mcast_addr=231.12.21.132的值可以改變,其取值範圍根據IP地址的規則(爲某些應用預留了特殊的IP地址)來定。
cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener
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)
在配置的過程中主要用到到的JAR包:
oscache-2.4.1.jar 緩存組件
jgroups-all.jar 基予JGroup的IP組播
commons-logging.jar 日誌包
concurrent.jar 處理線程讀寫同步
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.