解决nacos集群搭建,服务注册失败

项目场景

nacos集群搭建,微服务注册nacos

问题描述

微服务注册nacos集群,注册不上报错,以下是错误日志. 而单机启动nacos ,这可以注册的上去,由此可以判定是集群模式下会出现此问题

image-20220903155402479

09-03 15:28:48:652 ERROR 10892 --- [           main] c.a.c.n.registry.NacosServiceRegistry    : nacos registry, orderservice register failed...NacosRegistration{nacosDiscoveryProperties=NacosDiscoveryProperties{serverAddr='192.168.31.86:8845', endpoint='', namespace='a7e3910a-71e5-4204-ae1c-8d97fef4819b', watchDelay=30000, logName='', service='orderservice', weight=1.0, clusterName='HZ', group='DEFAULT_GROUP', namingLoadCacheAtStart='false', metadata={preserved.register.source=SPRING_CLOUD}, registerEnabled=true, ip='192.168.198.1', networkInterface='', port=8080, secure=false, accessKey='', secretKey='', heartBeatInterval=null, heartBeatTimeout=null, ipDeleteTimeout=null, failFast=true}},

com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance after all servers([192.168.31.86:8845]) tried: ErrCode:500, ErrMsg:caused: Raft put failed, key:com.alibaba.nacos.naming.iplist.a7e3910a-71e5-4204-ae1c-8d97fef4819b##DEFAULT_GROUP@@orderservice, value:{"instanceList":[{"instanceId":"192.168.198.1#8080#HZ#DEFAULT_GROUP@@orderservice","ip":"192.168.198.1","port":8080,"weight":1.0,"healthy":true,"enabled":true,"ephemeral":false,"clusterName":"HZ","serviceName":"DEFAULT_GROUP@@orderservice","metadata":{"preserved.register.source":"SPRING_CLOUD"},"lastBeat":1662190128649,"marked":false,"app":"unknown","instanceHeartBeatInterval":5000,"instanceHeartBeatTimeOut":15000,"ipDeleteTimeout":30000}]};
................
................

原因分析

应该是nacos 注册时,需要找网卡的 ip地址,但是有多个. 而注册时轮询找的第一个网卡的ip地址

如下图,我的第一个网卡的ip地址 是 192.168.198.1和服务日志打印的 ip地址如出一辙.

image-20220903153051615

image-20220903153327364

image-20220903154542542

而我正常的地址应该是以太网的ipv4地址 192.168.31.86

这一点在我检查nacos的集群配置文件也得到了验证,我的集群中只配置了

192.168.31.86:8845
192.168.31.86:8846
192.168.31.86:8847

启动nacos后, 却会多出来一个配置192.168.198.1:8848,这是电脑里的虚拟机网卡自动生成的.

image-20220903154145588


解决方案

  1. 先禁用 虚拟机的网卡

在 控制面板\网络和 Internet\网络连接 中,点击右键禁用

image-20220903153534408

  1. 修改每个nacos/conf 的cluster.conf,将多出来的配置删除掉
  2. 删除每个nacos 下的 data 文件夹

image-20220903154733976

  1. 重启nacos集群和微服务, 即可解决问题
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐