我使用通过 jgroups 分发的 ehcache。我使用 UDP multicat 进行分发。
ehcache 存在于 webapp 中。有几台机器运行该 web 应用程序。出于某种原因,我收到了 WARN NAKACK。似乎ehcache的几个实例无法加入jgroup。
这是 ehcache 配置(包含 jgroups-config):
<cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="connect=UDP(mcast_addr=${ehcache.multicast.address};mcast_port=45566;ip_ttl=32;
mcast_send_buf_size=150000;mcast_recv_buf_size=80000):
PING(timeout=2000;num_initial_members=6):
MERGE2(min_interval=5000;max_interval=10000):
FD_SOCK:VERIFY_SUSPECT(timeout=1500):
pbcast.NAKACK(gc_lag=10;retransmit_timeout=3000):
UNICAST(timeout=5000):
pbcast.STABLE(desired_avg_gossip=20000):
FRAG:
pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;
shun=false;print_local_addr=true)"
propertySeparator="::" />
这是堆栈跟踪:
TRACE - UDP - received [dst: <null>, src: testforce-54850 (2 headers), size=0 bytes, flags=OOB], headers are PING: [PING: type=GET_MBRS_REQ, cluster=EH_CACHE, arg=own_addr=testforce-54850, view id=null, is_server=false, is_coord=false, logical_name=testforce-54850, physical_addrs=fe80:0:0:0:216:3eff:fea6:7808%2:35176], UDP: [channel_name=EH_CACHE]
TRACE - PING - received GET_MBRS_REQ from testforce-54850, sending response [PING: type=GET_MBRS_RSP, arg=own_addr=hitchhiker-12009, view id=[hitchhiker-12009|0], is_server=true, is_coord=true, logical_name=hitchhiker-12009]
TRACE - UDP - sending msg to testforce-54850, src=hitchhiker-12009, headers are PING: [PING: type=GET_MBRS_RSP, arg=own_addr=hitchhiker-12009, view id=[hitchhiker-12009|0], is_server=true, is_coord=true, logical_name=hitchhiker-12009], UDP: [channel_name=EH_CACHE]
TRACE - UDP - received [dst: <null>, src: testforce-54850 (2 headers), size=0 bytes, flags=OOB], headers are PING: [PING: type=GET_MBRS_REQ, cluster=EH_CACHE, arg=own_addr=testforce-54850, view id=null, is_server=false, is_coord=false, logical_name=testforce-54850, physical_addrs=fe80:0:0:0:216:3eff:fea6:7808%2:35176], UDP: [channel_name=EH_CACHE]
TRACE - PING - received GET_MBRS_REQ from testforce-54850, sending response [PING: type=GET_MBRS_RSP, arg=own_addr=hitchhiker-12009, view id=[hitchhiker-12009|0], is_server=true, is_coord=true, logical_name=hitchhiker-12009]
TRACE - UDP - sending msg to testforce-54850, src=hitchhiker-12009, headers are PING: [PING: type=GET_MBRS_RSP, arg=own_addr=hitchhiker-12009, view id=[hitchhiker-12009|0], is_server=true, is_coord=true, logical_name=hitchhiker-12009], UDP: [channel_name=EH_CACHE]
TRACE - UDP - received [dst: <null>, src: testforce-54850 (3 headers), size=0 bytes, flags=OOB], headers are GMS: GmsHeader[GET_DIGEST_REQ]: mbr=null, NAKACK: [MSG, seqno=30], UDP: [channel_name=EH_CACHE]
TRACE - NAKACK - hitchhiker-12009: received testforce-54850#30
WARN - NAKACK - hitchhiker-12009: dropped message from testforce-54850 (not in xmit_table), keys are [hitchhiker-12009], view=[hitchhiker-12009|0] [hitchhiker-12009]
TRACE - STABLE - hitchhiker-12009: setting latest_local_digest from NAKACK: [hitchhiker-12009#3]
TRACE - STABLE - hitchhiker-12009: sending stable msg [hitchhiker-12009#3]
TRACE - NAKACK - sending hitchhiker-12009#4
TRACE - UDP - sending msg to null, src=hitchhiker-12009, headers are STABLE: [STABLE_GOSSIP]: digest is hitchhiker-12009: [0 : 3 (3)], NAKACK: [MSG, seqno=4], UDP: [channel_name=EH_CACHE]
TRACE - UDP - looping back message [dst: <null>, src: hitchhiker-12009 (3 headers), size=0 bytes, flags=OOB]
TRACE - UDP - received [dst: <null>, src: hitchhiker-12009 (3 headers), size=0 bytes, flags=OOB], headers are STABLE: [STABLE_GOSSIP]: digest is hitchhiker-12009: [0 : 3 (3)], NAKACK: [MSG, seqno=4], UDP: [channel_name=EH_CACHE]
TRACE - NAKACK - hitchhiker-12009: received hitchhiker-12009#4
TRACE - STABLE - hitchhiker-12009: handling digest from hitchhiker-12009 (0 votes):
mine: [hitchhiker-12009#2]
other: [hitchhiker-12009#3]
result: [hitchhiker-12009#2]
有什么想法我能做些什么吗?谢谢