微服务注册到nacos时,注册失败报错解决
微服务注册nacos时报错
NacosException: failed to req API:/nacos/v1/ns/instance/list after all servers([127.0.0.1:28100]) tried: ErrCode:503, ErrMsg:server is DOWNnow, detailed error message: Optional[No leader for raft group naming_persistent_service, please see logs alipay-jraft.log
or naming-raft.log
to see details.]
nacos报错alipay-jraft.log日志
在nacos的日志中发现,有个ip不一致:
WARN Node <naming_persistent_service/10.55.254.100:27100> can't do preVote as it is not in conf <ConfigurationEntry [id=LogId [index=2, term=2], conf=10.7.6.43:7848, oldConf=]>
报错原因排查
Nacos 采用 raft 算法来计算 Leader,并会记录上次启动的集群地址,所以当我们自己的服务器 IP 改变时,会导致 raft 记录的集群地址失效,进而导致选择 Leader 出现问题。
方法:删除 Nacos 根目录下 data 文件夹下的 protocol 文件夹即可。实际项目部署时,有时候可能会在本地更改好nacos配置,本地启动没问题后部署到服务器上(带着data目录),所以ip 与服务器ip不一致,导致了以上问题。