记一次Nacos操作报错问题

1、使用docker容器部署了nacos,容器编排文件docker-compose.yml配置nacos服务以standalone方式启动。

2、使用portainer工具查看容器情况正常

3、在开发环境将多个微服务注册到nacos

4、本地多个节点注册上去,导致有本地服务实例和开发环境服务实例在同一个nacos注册中心的微服务上,这时候我想下线开发环境的微服务实例,当我点“下线”按钮操作时,报错了:errCode: 500, errMsg: do metadata operation failed。咋一看,有点懵逼,什么元数据操作失败。

5、思考:经过我思来想去认为可能是数据库表数据问题,经过我对数据库表检查没有发现问题。

然后又想是否不是standalone模式启动,但是重启后发现是standalone模式启动,然后操作还是报错。最后网上查找一下,有可能是“Raft 协议选举故障元数据不一致导致”,然后我就把nacos/data目录下的protocol目录删除了,然后重启nacos容器,再操作果然成功了。

6、核心修复步骤(90% 场景适用)

1. 清理 Raft 协议缓存数据

删除 Nacos 所有节点下的 protocol 目录,重启集群

# 进入 Nacos 安装目录 cd ${nacos.home}/data rm -rf protocol # 删除协议数据

./bin/shutdown.sh && ./bin/startup.sh # 重启集群

原因:IP 变动或宕机导致 Raft 记录的旧集群地址失效,需重置选举状态

2. 验证集群配置一致性

检查每个节点的 cluster.conf 文件,确保所有节点 IP 一致且无重复:

cat conf/cluster.conf # 示例内容: # 192.168.1.101:8848 # 192.168.1.102:8848

注意:修改后需重启所有节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值