我使用 EHCache + JGroups 在 3 个 tomcat 实例上复制我的 webapps 的缓存。
<!-- 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 专家)。 干杯, 贝拉
关于java - Tomcat 等待加入 jgroups 集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13881735/