Nacos的连接错误:ErrCode:-401, ErrMsg:Client not connected,current status:STARTING的解决办法

最近在将HASentinel(https://gitee.com/laofeng/hasentinel)接入Nacos配置中心,在连接的时候怎么都不能够连接成功,报错误:

ErrCode:-401, ErrMsg:Client not connected,current status:STARTING

使用的Nacos server及client的版本都是2.0.3。

创建ConfigService使用的是方法ConfigFactory.createConfigService(Properties),如下所示:

反复确认过Properties中所有的配置都正确,通过Debug跟踪代码,发现通过传入Properties传入参数构造对象ServerListManager时,会将isFixed这个变量设置为true,如下所示:

 ServerListManager对象创建成功,会调用启动连接的start()方法,如下所示:

但是在start()方法会同时判断isStarted及isFixed两个参数,只要有一个的值为true,就会立即返回不继续往下执行,如下所示:

 但是在前面isFixed已经被修改为了true,因而就不会继续执行连接操作,对isFixed变量进行了跟踪,发现只有这么一处业务逻辑。

 于是下载最新的代码,修改ServerListener.start()的判断逻辑去掉去isFixed的判断:

if (isStarted) {
  return;
}

然后重新编码api、common、client模块,版本为2.1.0-SNAPSHOT,然后在pom中重新依赖这些模块,再次启动就不再报上面的401错误。

难道就我一个遇到?后面继续跟进该问题!