一直以来在docker版本里使用nacos都有一个问题,springcloud项目会报找不到nacos服务器:
16:05:16.930 [com.alibaba.nacos.client.Worker.longPolling.fixed-10.1.6.102_8848] ERROR com.alibaba.nacos.client.config.impl.ClientWorker - longPolling error : java.net.NoRouteToHostException: No route to host (Host unreachable)
也百度了谷歌了,都说是客户端版本和服务端版本不一致导致的,今天开发把客户端版本由1.1.4升级到1.4.1后更新springcloud项目后又出现问题:
nacos no available server, currentServerAddr
也是找不到nacos服务端,但是和以前的报错有点不一样,在更换了服务器版本多次后均没有效果,遂下决定研究一翻,经过谷歌一通,终于发现一个简单而行之有效的方法:
在pom.xml文件加入指定nacos客户端版本的依赖:
- <dependency>
- <groupId>com.alibaba.cloudgroupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
- dependency>
- <dependency>
- <groupId>com.alibaba.cloudgroupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
- dependency>
- <dependency>
- <groupId>com.alibaba.nacosgroupId>
- <artifactId>nacos-clientartifactId>
- <version>1.4.1version>
- dependency>
加入依赖后重启springcloud项目后,没有报找不到,又报一个新问题
org.redisson.connection.DNSMonitor - Unable to resolve redis
以谷歌查询得出如下结论:
Fixed - Redisson can't resolve short DNS name #1693
肯定是开发又瞎搞了,redisson这个组件不能解析短域名,而我的那些配置都是短域名。经过对比线上和开发环境的redisson组件后发现开发的redisson组件是最新的版本redisson-3.15.3,而线上的版本redisson-3.7.3,叫开发暂时降低版本查看!
过程中又有出现过nacos配置页面刷新的时候服务一会儿有一会儿没有的问题,后来更换了seata版本由docker最新版的换为seata1.3.0版本后,暂时没有发现问题,依据如下:
链接 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E