我使用EHCache + JGroups在3个tomcat实例上复制Web应用程序的缓存。
<!-- Use jgroups (UDP) to replicate cache among the cluster -->
<cacheManagerPeerProviderFactory
class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory"
properties="channelName=EH_CACHE_STA::connect=UDP(mcast_addr=229.10.10.10;mcast_port=45567;):PING:MERGE2:FD_SOCK:VERIFY_SUSPECT:pbcast.NAKACK:UNICAST:pbcast.STABLE:FRAG:pbcast.GMS"
propertySeparator="::" />
有时,tomcat实例不会重新启动。在jgroups日志中,我可以看到:
[webapp] WARN 2012-12-14 15:36:55,784 [GMS] : join(tc-fr-sta-tomcat1-32427) sent to b0dc40aa-12aa-4045-01e4-c80b013dbb13 timed out (after 5000 ms), retrying
[webapp] WARN 2012-12-14 15:36:55,785 [UDP] : tc-fr-sta-tomcat1-32427: no physical address for b0dc40aa-12aa-4045-01e4-c80b013dbb13, dropping message
似乎该节点尝试加入自己?
我们必须重新启动生产中的所有tomcat才能还原集群。
有人可以帮助我解决这个问题吗?
最佳答案
它与哪个版本的JGroups一起运行(java -jar jgroups.jar)?我建议以最新的稳定版本运行。另外,在UDP中设置timer_type =“old”。
另外,如果ehcache允许在XML文件中定义JGroups配置会更好,也许这是最新版本? (我不是ehcache专家)。
干杯,
贝拉