java有类似于ClientConfig的东西。Hazelcast 4.2中的SetConnectionAttentileLimit()?
我有一个场景,我想用Java实例化一个Hazelcast客户机,如果Hazelcast客户机无法连接到它的集群,它应该被关闭,并且应该有一个后备代码。因此,让我们假设Hazelcast客户是一种应该拥有的,但不是必须拥有的
在版本3中。在Hazelcast的x中,我有机会在Hazelcast 4.2中调用HazelcastClientConfig.setConnectionAttemptLimit(1);
,我不知道如何建立相同的场景。没有方法ClientConfig.setConnectionAttemptLimit(...);
或类似的东西
有人知道如何将初始连接尝试设置为1吗
我可能可以实现如下代码:
// ...
ClientConfig clientConfig = new ClientConfig();
clientConfig.getNetworkConfig().addAddress(String.format("%s:%s", hazelcastServerHost, hazelcastServerPort));
clientConfig.getConnectionStrategyConfig().setAsyncStart(true);
// The following code is a really dirty solution in case that HC client cannot connect to it's cluster.
// Only works with clientConfig.getConnectionStrategyConfig().setAsyncStart(true);
try {
Thread.sleep(5000); // Let's assume that a HC instance should probably be connected in 5 seconds.
} catch (InterruptedException e) {
log.error(e.getMessage());
e.printStackTrace();
}
try {
hcClient.getMap("DUMMY"); // perform a dummy access in order to receive a HazelcastClientOfflineException if the client is not connected.
} catch (HazelcastClientOfflineException e){
hcClient.shutdown();
}
return hcClient;
但我觉得这比脏的多
# 1 楼答案
https://docs.hazelcast.com/imdg/4.2/migration-guides#changes-in-client-connection-retry-mechanism
已删除连接尝试周期和连接尝试限制配置。相反,连接的元素会重试
要实现与之前相同的目标,可以执行以下操作:
使用此设置,如果客户机在5秒内无法连接到群集,它将关闭,与使用
connection-attempt-limit
和connection-attempt-period
的旧设置类似。有关详细信息,请参阅以下链接 https://docs.hazelcast.com/imdg/4.2/clients/java#configuring-client-connection-retry