Hazelcast Client重新连接到集群时日志过多



我有一个Java Hazelcast客户端正常连接到Hazelcast,但是,我试图找出这个Java客户端处理集群上故障的方式。

我发现clientConfig.getConnectionStrategyConfig().getConnectionRetryConfig().setInitialBackoffMillis(10000).setMaxBackoffMillis(10000);的设置将重试之间的等待时间设置为10秒。

似乎工作正常,但是,我收到无数的重试日志,并且在重试之间无法连接到集群。

我想知道客户端是否试图连接这些多次(我想避免),或者这些日志来自哪里(因为它应该只尝试每10秒连接一次)。

My Client Setup:

public MyHazelcastClient() {
// Create hazelcast client config
ClientConfig clientConfig = new ClientConfig();
clientConfig.getNetworkConfig().addAddress("127.0.0.1:5701");
clientConfig.setInstanceName("hz-client-local");
clientConfig.setClusterName("dev");
// Set connection retry strategy
clientConfig.getConnectionStrategyConfig().getConnectionRetryConfig()
.setInitialBackoffMillis(10000)
.setMaxBackoffMillis(10000);
// Create hazelcast instance
HazelcastInstance hz = HazelcastClient.newHazelcastClient(clientConfig);
Properties properties = HazelcastCachingProvider.propertiesByInstanceName(hzInstanceName);
hz.getLifecycleService().addLifecycleListener(event -> {
if (event.getState() == LifecycleState.CLIENT_DISCONNECTED) {
isAlive = false;
logger.info("Hazelcast clusters disconnected.");
}
else {
isAlive = true;
logger.info("Hazelcast clusters reconnected");
}
});
}

测试日志(中间关闭hazelcast集群):

Jun 07, 2022 4:32:57 PM com.hazelcast.client.impl.connection.tcp.TcpClientConnection
INFO: hz-client-local [dev] [5.0.2] ClientConnection{alive=false, connectionId=1, channel=NioChannel{/127.0.0.1:56789->/127.0.0.1:5701}, remoteAddress=[127.0.0.1]:5701, lastReadTime=2022-06-07 16:32:57.491, lastWriteTime=2022-06-07 16:32:57.491, closedTime=2022-06-07 16:32:57.947, connected server version=5.0.2} closed. Reason: Connection closed by the other side
Jun 07, 2022 4:32:57 PM com.hazelcast.client.impl.connection.ClientConnectionManager
INFO: hz-client-local [dev] [5.0.2] Removed connection to endpoint: [127.0.0.1]:5701:bab6c664-a458-4671-9d22-388bbf840dcf, connection: ClientConnection{alive=false, connectionId=1, channel=NioChannel{/127.0.0.1:56789->/127.0.0.1:5701}, remoteAddress=[127.0.0.1]:5701, lastReadTime=2022-06-07 16:32:57.491, lastWriteTime=2022-06-07 16:32:57.491, closedTime=2022-06-07 16:32:57.947, connected server version=5.0.2}
Jun 07, 2022 4:32:57 PM com.hazelcast.core.LifecycleService
INFO: hz-client-local [dev] [5.0.2] HazelcastClient 5.0.2 (20211221 - 18eec9f) is CLIENT_DISCONNECTED
Jun 07, 2022 4:32:57 PM com.xxx.xxx.xxx.client.MyHazelcastClient lambda$new$0
INFO: Hazelcast clusters disconnected.
Jun 07, 2022 4:32:57 PM com.hazelcast.client.impl.connection.ClientConnectionManager
INFO: hz-client-local [dev] [5.0.2] Trying to connect to cluster: dev
Jun 07, 2022 4:32:57 PM com.hazelcast.client.impl.connection.ClientConnectionManager
INFO: hz-client-local [dev] [5.0.2] Trying to connect to Member [127.0.0.1]:5701 - bab6c664-a458-4671-9d22-388bbf840dcf
Jun 07, 2022 4:32:57 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Exception during initial connection to Member [127.0.0.1]:5701 - bab6c664-a458-4671-9d22-388bbf840dcf: com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:32:57 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Unable to get live cluster connection, retry in 10000 ms, attempt: 1, cluster connect timeout: INFINITE, max backoff: 10000 ms
Jun 07, 2022 4:32:58 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:32:59 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:00 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:01 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:02 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:03 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:04 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:05 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:06 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:07 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:07 PM com.hazelcast.client.impl.connection.ClientConnectionManager
INFO: hz-client-local [dev] [5.0.2] Trying to connect to Member [127.0.0.1]:5701 - bab6c664-a458-4671-9d22-388bbf840dcf
Jun 07, 2022 4:33:07 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Exception during initial connection to Member [127.0.0.1]:5701 - bab6c664-a458-4671-9d22-388bbf840dcf: com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:07 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Unable to get live cluster connection, retry in 10000 ms, attempt: 2, cluster connect timeout: INFINITE, max backoff: 10000 ms
Jun 07, 2022 4:33:08 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:09 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:10 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:11 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:12 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:13 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:14 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:15 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:16 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:17 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:17 PM com.hazelcast.client.impl.connection.ClientConnectionManager
INFO: hz-client-local [dev] [5.0.2] Trying to connect to Member [127.0.0.1]:5701 - bab6c664-a458-4671-9d22-388bbf840dcf
Jun 07, 2022 4:33:17 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Exception during initial connection to Member [127.0.0.1]:5701 - bab6c664-a458-4671-9d22-388bbf840dcf: com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701
Jun 07, 2022 4:33:17 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Unable to get live cluster connection, retry in 10000 ms, attempt: 3, cluster connect timeout: INFINITE, max backoff: 10000 ms
Jun 07, 2022 4:33:18 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701

你可以看到在Unable to get live cluster connection, retry in 10000 ms, attempt: 1, cluster connect timeout: INFINITE, max backoff: 10000 msattempt 2之间,有很多尝试连接的日志,这让我感到困惑,这些尝试计数正确吗?

是否有一种方法可以使它实际上只尝试每10秒连接一次?或者如果这些日志不相关,如何让它们安静下来?由于

这似乎是Java客户机实现中的一个错误。

重新连接逻辑工作在每10秒与您所做的配置,没有问题。您可以通过检查从以下行开始的日志来查看,这些行间隔10秒。

Jun 07, 2022 4:32:57 PM com.hazelcast.client.impl.connection.ClientConnectionManager
INFO: hz-client-local [dev] [5.0.2] Trying to connect to Member [127.0.0.1]:5701 - bab6c664-a458-4671-9d22-388bbf840dcf

您看到的其他日志来自于一个内部周期性任务,该任务每秒执行一次,如果启用了智能路由(默认情况下是启用的),它会尝试与所有集群成员建立连接。

Jun 07, 2022 4:32:59 PM com.hazelcast.client.impl.connection.ClientConnectionManager
WARNING: hz-client-local [dev] [5.0.2] Could not connect to member bab6c664-a458-4671-9d22-388bbf840dcf, reason com.hazelcast.core.HazelcastException: java.io.IOException: Connection refused to address /127.0.0.1:5701

问题是客户端应该在周期性任务中更聪明,如果还没有连接到集群,就不应该尝试连接集群成员,并将重新连接逻辑留在正确的位置。

我已经创建了一个GitHub问题来跟踪修复这个问题。不幸的是,没有办法解决每秒打印的日志,您必须等待它得到修复。

最新更新