starlight
starlight copied to clipboard
BrpcSingleChannel 关闭后仍然会有重连操作
synchronized (channelGroup) {
if (oldChannel != channelGroup.channel) {
return;
}
Channel newChannel = null;
try {
newChannel = channelGroup.createChannel(
channelGroup.getServiceInstance().getIp(),
channelGroup.getServiceInstance().getPort());
} catch (Exception e) {
log.info("failed reconnecting");
}
if (newChannel != null) {
channelGroup.updateChannel(newChannel);
if (oldChannel != null) {
oldChannel.close();
}
}
}
ReConnectTask 中未校验channelGroup是否已close, 服务端有大量节点存在时,关闭时会报大量重连失败的日志, 并且进程退出的时间也会延后(等待重连线程中的任务执行)