跳到主要内容

Nacos权重配置问题

问题复现

当修改服务权重报错:

caused: errCode: 500, errMsg: do metadata operation failed ;
caused: com.alibaba.nacos.consistency.exception.ConsistencyException: The Raft Group [naming_instance_metadata] did not find the Leader node;
caused: The Raft Group [naming_instance_metadata] did not find the Leader node;

image-20240822144811372

问题原因

Nacos 采用 raft 算法来计算 Leader,并且会记录前一次启动的集群地址,所以当我们自己的服务器 IP 改变时(这里特指自己学习时,在本地启动的同学,因为有时候我们的网络环境会变的 … WIFI,所以 IP 地址也经常变化),会导致 raft 记录的集群地址失效,导致选 Leader 出现问题。

解决办法

  1. nacos安装目录下,找到data/protocol
  2. protocal整个文件夹删了,然后重启nacos就行了

/home/nacos/data/protocol 目录在 Nacos 中主要用于存储与集群通信协议相关的数据。

Nacos 在集群模式下会涉及节点之间的通信和数据同步,protocol 目录通常保存的是节点间通信时的一些元数据或状态信息。比如,Nacos 节点间的心跳协议、leader 选举相关的协议数据等。这些数据对于集群的高可用性、一致性以及节点间的正确通信非常关键。

如果是Docker安装的,需要先进入容器,然后删除:

rm -rf /home/nacos/data/protocol