我们使用Java Hazelcast客户端连接到外部Hazelcast集群(版本3.7.2),但如果集群出现故障,则会出现重新连接问题.
我们正在创建我们的客户HazelcastClient.newHazelcastClient
.一旦这样做,我们保持的副本,HazelcastInstance
并用它来与Hazelcast集群互动(getMap
,getSet
,等).我们还存储了从HazelcastInstance
可能长寿命的对象中获取的地图,集合等.幸福的道路上一切都很好.但是,如果群集出现故障并重新启动,我们会HazelcastInstanceNotActiveException
在尝试访问群集关闭之前创建的这些对象时获得.
有没有办法在群集重新联机时自动重新建立客户端连接,以便我们可以继续使用我们之前从群集关闭之前从Hazelcast检索到的对象(地图,集等)?或者我们是否需要有额外的代码来捕获HazelcastInstanceNotActiveException
然后重建HazelcastInstance
我们存储在客户端应用程序中的任何对象?后者似乎是非常具有侵略性,并且在我们存储这些Hazelcast对象之一的每个实例中都绝对不可取.
我读过的大多数内容都涉及NetworkConfig
连接超时,尝试限制和尝试超时的设置.我们当前正在使用默认值,但在访问我们已经检索过的对象时,它们似乎没有做任何事情.HazelcastInstanceNotActiveException
即使在群集备份后,对先前存在的对象的任何访问也会立即失败.
这似乎是很多人会遇到的常见问题.处理这个问题的最佳做法是什么?