Gemfire群集突然由于ClusterConfigurationNotAvailableException异常而关闭:无法从定位器检索群集配置
我们有2个定位器和2个服务器Gemfire集群。我们使用cache.xml引导Gemfire缓存服务器,并使用spring boot初始化程序引导spring数据gemfire xml。
我们有一个客户端spring boot服务,可以连接到集群。
由于ClusterConfigurationNotAvailableException,Gemfire群集突然随机关闭:无法从定位器检索群集配置。可能是什么原因?重新启动后,它可以正常工作一天或两天而没有问题,然后出现此问题。它影响了我们的高可用性。请帮助我们解决此问题。
org.apache.geode.GemFireConfigException: cluster configuration service not available
at org.apache.geode.internal.cache.GemFireCacheImpl.requestSharedConfiguration(GemFireCacheImpl.java:1025)
at org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1149)
at org.apache.geode.internal.cache.GemFireCacheImpl.basicCreate(GemFireCacheImpl.java:758)
at org.apache.geode.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:735)
at org.apache.geode.distributed.internal.InternalDistributedSystem.reconnect(InternalDistributedSystem.java:2748)
at org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect(InternalDistributedSystem.java:2518)
at org.apache.geode.distributed.internal.InternalDistributedSystem.disconnect(InternalDistributedSystem.java:993)
at org.apache.geode.distributed.internal.DistributionManager$MyListener.membershipFailure(DistributionManager.java:4354)
at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.uncleanShutdown(GMSMembershipManager.java:1556)
at org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.lambda$forceDisconnect$0(GMSMembershipManager.java:2593)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.geode.internal.config.ClusterConfigurationNotAvailableException: Unable to retrieve cluster configuration from the locator.
at org.apache.geode.internal.cache.ClusterConfigurationLoader.requestConfigurationFromLocators(ClusterConfigurationLoader.java:259)
at org.apache.geode.internal.cache.GemFireCacheImpl.requestSharedConfiguration(GemFireCacheImpl.java:988)
... 10 more
预期的行为是Gemfire群集的高可用性
答案 0 :(得分:2)
默认情况下,每当GemFire服务器启动(或在意外关闭后自动重新连接到集群)时,它都会尝试从任何定位器恢复Cluster Configuration,如果这样做失败,则该成员将关闭自身,这就是查看附加的堆栈跟踪的过程(请参阅堆栈中org.apache.geode.distributed.internal.InternalDistributedSystem.tryReconnect
的出现)。我将分析的重点放在为什么成员首先断开连接,随后重新连接失败只是原因而不是问题的根本原因。
无论哪种方式,如果您仅使用单个xml文件来配置成员,而根本不想使用Cluster Configuration Service,则只需使用属性--enable-cluster-configuration=false
启动定位器(默认值为true
)和服务器为--use-cluster-configuration=false
(默认值为true
),这将阻止服务器尝试使用定位器中的群集配置启动。 / p>
希望这会有所帮助。干杯。