You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by f cad <wk...@gmail.com> on 2022/06/22 01:53:38 UTC
ignite client can not reconnect to ignite Kubernetes cluster,after pod restart
below if client code config
KubernetesConnectionConfiguration kcfg = new
KubernetesConnectionConfiguration();
kcfg.setNamespace(igniteK8sNameSpace);kcfg.setServiceName(igniteK8sServiceName);cfg.setAddressesFinder(new
ThinClientKubernetesAddressFinder(kcfg));cfg.setRetryPolicy(new
ClientRetryAllPolicy());
after ignite pod restart
client throw Exceptionorg.apache.ignite.client.ClientConnectionException:
Connection timed out
at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:144)
at org.apache.ignite.internal.client.thin.TcpClientChannel.<init>(TcpClientChannel.java:178)
at org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:917)
at org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:898)
at org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.access$200(ReliableChannel.java:847)
at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:759)
at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:731)
at org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:167)
at org.apache.ignite.internal.client.thin.ReliableChannel.request(ReliableChannel.java:288)
at org.apache.ignite.internal.client.thin.TcpIgniteClient.getOrCreateCache(TcpIgniteClient.java:185)
and i use retry to reconnect and print
clientConfiguration.getAddressesFinder().getAddresses() and it address is
pod address,but client not reconnect
while (retryTimeTmp < retryTimes) {
try {
return igniteClient.getOrCreateCache(new
ClientCacheConfiguration()
.setName(cacheName)
.setAtomicityMode(TRANSACTIONAL)
.setCacheMode(PARTITIONED)
.setBackups(2)
.setWriteSynchronizationMode(PRIMARY_SYNC));
}catch (Exception e) {
LOGGER.error("get cache [{}] not success", cacheName, e);
LOGGER.error("get address info [{}], ipfinder [{}]",
clientConfiguration.getAddresses(),
clientConfiguration.getAddressesFinder().getAddresses());
retrySleep();
} finally {
retryTimeTmp++;
}
Re: ignite client can not reconnect to ignite Kubernetes cluster,after pod restart
Posted by "wkhapy123@gmail.com" <wk...@gmail.com>.
reason i found ,ignite server node restart ip changed,but ignite client still use old ip address,is there any way refresh address
wkhapy123@gmail.com
From: f cad
Date: 2022-06-22 09:53
To: user
Subject: ignite client can not reconnect to ignite Kubernetes cluster,after pod restart
below if client code config
KubernetesConnectionConfiguration kcfg = new KubernetesConnectionConfiguration();
kcfg.setNamespace(igniteK8sNameSpace);
kcfg.setServiceName(igniteK8sServiceName);
cfg.setAddressesFinder(new ThinClientKubernetesAddressFinder(kcfg));
cfg.setRetryPolicy(new ClientRetryAllPolicy());
after ignite pod restart
client throw Exception
org.apache.ignite.client.ClientConnectionException: Connection timed out
at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:144)
at org.apache.ignite.internal.client.thin.TcpClientChannel.<init>(TcpClientChannel.java:178)
at org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:917)
at org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:898)
at org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.access$200(ReliableChannel.java:847)
at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:759)
at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:731)
at org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:167)
at org.apache.ignite.internal.client.thin.ReliableChannel.request(ReliableChannel.java:288)
at org.apache.ignite.internal.client.thin.TcpIgniteClient.getOrCreateCache(TcpIgniteClient.java:185)
and i use retry to reconnect and print clientConfiguration.getAddressesFinder().getAddresses() and it address is pod address,but client not reconnect
while (retryTimeTmp < retryTimes) {
try {
return igniteClient.getOrCreateCache(new ClientCacheConfiguration()
.setName(cacheName)
.setAtomicityMode(TRANSACTIONAL)
.setCacheMode(PARTITIONED)
.setBackups(2)
.setWriteSynchronizationMode(PRIMARY_SYNC));
}catch (Exception e) {
LOGGER.error("get cache [{}] not success", cacheName, e);
LOGGER.error("get address info [{}], ipfinder [{}]", clientConfiguration.getAddresses(), clientConfiguration.getAddressesFinder().getAddresses());
retrySleep();
} finally {
retryTimeTmp++;
}