本文介绍如何解决Nacos实例连接失败问题。
问题现象
当程序连接Nacos出现连接失败问题时,可能会出现如下几种报错。
Client not connected,currentstatus:STARTING
Client not connected,currentstatus:UNHEALTHY
no available server, currentServerAddr: xxxxx
Connection refused
问题原因
可能是如下几种原因,导致程序连接Nacos出现连接失败。
Nacos的访问地址或端口配置错误。
访问Nacos集群时,网络异常。
使用VPN导致的网络问题。
客户端存在高CPU使用率、频繁FullGC等问题。
解决方案
(1) 在错误所在的客户端节点上,使用ping、telnet和curl等命令,访问Nacos集群,排查是否存在网络问题。
ping ${mse.nacos.host}
telnet ${mse.nacos.host}:47588
telnet ${mse.nacos.host}:48588
curl ${mse.nacos.host}:47588/nacos/v1/ns/service/list
(2) 检查应用的相关配置,是否配置了正确的MSE实例访问地址、端口等信息。
(3) 如果报错信息为Connection refused ,请从紧随其后的报错信息中查看实际连接的地址与MSE实例的连接地址是否不相同。例如Connection refused: /127.0.0.1:48588说明某些配置错误地指向了本机地址。
(4) 如果使用了VPN,请检查VPN设置是否正确。若不正确,请关闭VPN或修改VPN设置后重试。
(5) 若通过上述步骤还无法定位问题,注册配置中心控制台的监控分析页面,查看Nacos的如下信息:
在概览页签,查看引擎的每秒查询数和每秒操作数是否超过了每秒处理请求数(TPS)。
关于每秒处理数的取值,请参见实例能力评估。
在连接数监控页签,查看长链路数量是否超过了连接数。
关于连接数的取值,请参见实例能力评估。
在jvm监控页签,查看引擎是否频繁出现Full GC。
在资源监控页签,查看资源的入口流量和出口流量是否超出购买时指定的带宽大小。
在资源监控页签,查看资源的内存使用率和CPU使用率是否接近或超过100%,导致节点可能出现异常。
资源的内存使用率和CPU使用率接近或超过100%,请尝试变更实例规格进行升配,请参见变更实例规格。