本人最近在做Spring Boot整合nacos集群的事情,发现Nacos集群正确配置后,Spring Boot整合Nacos注册中心,然后启动时,报了如下的错。
failed to req API:/api//nacos/v1/ns/instance after all servers([localhost:8848])
我看了一些网络文章,发现问题并没有解决,于是我尝试了一下,结果解决了该问题,所以写文记录下过程。
1 首先需要确保Nacos集群中的诸多节点正常启动,而且在nacos控制台里能看到如下确认集群工作正常的界面。
2 如果在本机调试,需要把集群中诸多节点的IP地址设置成具体的IP地址,比如192.168.2.4等,可以用端口号来区分。网上有些文章说,在本地搭建集群,不建议直接用localhost或127.0.0.1等的IP地址,这个我没尝试过。不过我在本机搭建Nacos集群时,需要实现配置Nacos的持久化,不配置的话集群没法工作。
关于搭建Nacos集群的事,我有时间会再写篇专门的文章。
如下是重点
3 Nacos服务提供者项目,如果连接单机版的Nacos时,相关配置参数是这样的。
nacos.discovery.server-addr=127.0.0.1:8848
但这样的话,启动该项目时,会出现上文提到的错,后来我把上述配置参数修改成这样。
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8858,127.0.0.1:8868
问题就解决了。
也就是说,如果是Spring Boot连单机版Nacos,可以用nacos.discovery.server-addr配置参数,但如果连接Nacos集群,就需要用spring.cloud.nacos.discovery.server-addr,前面需要加spring.cloud。
4 整合Nacos集群时,Nacos服务消费者的项目,相关Nacos的配置参数如下。
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8858,127.0.0.1:8868
其中要加上Nacos诸多节点信息,但需要说明的是,如果连的是单机版Nacos,该配置项还是spring.cloud.nacos.discovery.server-addr。
这是我的公众号,其中包含了大量面试文章,同时我自己出了多本Python和Java方面的书籍,会定期在公众号里发书的电子版。请大家关注下我的公众号,谢谢了。