Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect

版本
spring-cloud-alibaba:2021.1
项目构建工具:gradle
nacos-server:2.0.3

1、问题

昨天早上上班来了之后,运营的同事着急的过来说生产环境登不上了,我赶紧打开日志看了之后,就发现了这样的报错
Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect_第1张图片
问了运维他们说他们大晚上的也没改服务器的配置,于是就开启了漫长的debug之路

2、分析思路

在网上看了一大堆的解决方案之后,最后发现了两个比较合适的解决方案
1、https://github.com/alibaba/nacos/issues/5788
2、https://segmentfault.com/a/1190000040083941
其中方案一在和运维的同事讨论之后,认为我们自己的服务器环境不适合那种解决方案,所以就注重参考了方案二,下面来具体说一下方案二

-----------------------------------------------------华丽的分割线------------------------------------------------------------------

方案二中的这段话引起了我的注意
Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect_第2张图片
仔细查看了我的代码之后发现,虽然我引入的是spring-cloud-alibaba2021.1版本,但是在spring-cloud-starter-alibaba-nacos-configspring-cloud-starter-alibaba-nacos-discoverynacos-client的版本还是1.4.1
Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect_第3张图片
也就是说虽然大的版本升级了,但是里面nacos-client的小版本并未升级。

3、解决方案

找到了这个问题之后,我们就可以在grade(或者maven)中手动排除一下nacos-client,重新引入一下nacos-client的最新版本

	compile ('com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config') {
        exclude group:'com.alibaba.nacos', module:'nacos-client'
    }
    compile ('com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery') {
        exclude group:'com.alibaba.nacos', module:'nacos-client'
    }
    compile ('com.alibaba.nacos:nacos-client:2.0.3')

改了之后的依赖关系是这样的
Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect_第4张图片
重新上线部署之后,截止目前还没发现别的问题

4、问题总结

  1. 虽然是生产环境登不上了,但是我在仔细排查之后发现,其实服务本身并未宕机,直接调用该服务上的接口还是可以调的通的,只是该服务被nacos从服务列表中剔除了,出现该问题的原因应该是:报错之后打断了服务和nacos之间的心跳连接,nacos连接不上服务之后,就剔除了该服务,所以在feign调用的时候就报错了,但是不知道为什么服务恢复之后没有自动重连。至于为什么会好好的出现这个异常,还需要再继续研究一下。

  2. Spring Cloud Alibaba和Spring Cloud和Nacos的版本对应关系:
    Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect_第5张图片
    Nacos踩坑记录之The IPv4 address(“nacos.xxxx.local“) is incorrect_第6张图片
    因为我们公司项目的Spring Cloud版本之前升级到了2020.0.1,所以我的Spring Cloud Alibaba的版本只可以选择2021.1,那么我的Nacos版本也就只可以选择1.4.1了,But我当前的Nacos版本却是最新的2.0.3,不过目前还没有发现不可逆的错误。
    笔者在此谨慎的告诉大家:版本升级的时候,一定要看清楚各个版本之间的对应关系,避免因为版本不对应的原因导致一些莫名其妙的bug

  3. 出现这个问题之后,我们在生产环境加上了Nacos的Prometheus监控平台,具体的搭建流程大家可以参考Nacos的官方文档自行操作

参考链接:

  1. https://github.com/alibaba/nacos/issues/5788
  2. ​https://segmentfault.com/a/1190000040083941

你可能感兴趣的:(Nacos,java,开发语言,后端,nacos,spring,cloud)