Nacos下线服务时,下线报错选举Leader失败问题以及解决
作者:kming.qiu
Nacos下线服务时,下线报错选举Leader失败
问题描述
Nacos注册中心有一个微服务有多台实例的时候,点击一个实例下线操作,报错
caused: errCode: 500, errMsg: do metadata operation failed ;
caused: com.alibaba.nacos.consistency.exception.ConsistencyException: com.alibaba.nacos.core.distributed.raft.exception.NoLeaderException: The Raft Group [naming_instance_metadata] did not find the Leader node;
caused: com.alibaba.nacos.core.distributed.raft.exception.NoLeaderException: The Raft Group [naming_instance_metadata] did not find the Leader node;
解决方案
Nacos 采用 raft 算法来计算 Leader,并且会记录前一次启动的集群地址,所以当我们自己的服务器 IP 改变时(这里特指自己学习时,在本地启动的同学,因为有时候我们的网络环境会变的 …
WIFI,所以 IP 地址也经常变化),会导致 raft 记录的集群地址失效,导致选 Leader 出现问题,只要删除 Nacos 根目录下 data 文件夹下的 protocol 文件夹即可。
Nacos控制台下线服务报错
现象
在 Nacos控制台服务列表,点击下线按钮,Nacos控制台报错,
提示错误信息:
[naming_instance_metadata] did not find the Leader node
原因
- Nacos 1.x版本默认以单机方式启动;
- Nacos 2.x版本默认以集群方式启动;
- Nacos 2.x版本第一次启动的时候是按照集群初始的配置,导致后面修改为单机版本启动之后,注册上的服务点击下线会出现该问题
解决方案
删除 Nacos的 data/protocol目录下的文件即可
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。