先贴报错
java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([http://xxxxxx.viphk.91tunnel.co]) tried: failed to req API:http://xxxxxx.viphk.91tunnel.co/nacos/v1/ns/instance. code:500 msg: java.net.UnknownHostException: xxxxxx.viphk.91tunnel.co
因为遇到上面的报错,所以才深究了一下nacos服务注册的server-addr属性的配置。
展示两个正确的配置
spring.cloud.nacos.discovery.server-addr=http://xxxxxx.viphk.91tunnel.com/
spring.application.name=renren-fast
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8838
spring.application.name=renren-fast
第一种(server-addr)如果的你域名是包含端口号的,那么你一定要把http://或者https:// 这种协议头给带上,且域名后面一定要加 /
放源码解释
为啥要加协议头
源码中的curServer就是server-addr配置的值
http://xxxxxx.viphk.91tunnel.com/
看远码可以知道,如果地址(xxxxxx.viphk.91tunnel.com)没有加协议头,代码会将端口号拼接在地址后面。
得到新的地址:xxxxxx.viphk.91tunnel.com:8848,
这样新的地址就有问题了!文章来源:https://www.toymoban.com/news/detail-608243.html
加协议头后地址结尾为啥要加 /
从源码可以看出,如果你的地址有协议头,那么必然会有双斜杠“//”,那么源码将会把你的地址截断一个字符
得到新的地址:http://liubaitest1.viphk.91tunnel.co文章来源地址https://www.toymoban.com/news/detail-608243.html
到了这里,关于nacos服务注册地址配置(server-addr)failed to req API:/nacos/v1/ns/instance after all servers([xxxxxx])的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!