问题:Feign调用服务报错:Load balancer does not have available server for client:xxx
原因:这个xxx服务未找到
解决思路:
1、先看看注册中心是否有这个xxx服务,服务名称必须是xxx,我们用的注册中心是nacos,发现还真的没有这个服务。
2、然后去看看配置文件bootstrap.yml,
bootstrap.yml里面的服务名确实是xxx,没问题啊
server:
port: 8009
spring:
application:
name: xxx
cloud:
nacos:
config:
server-addr: localhost:8848
file-extension: yml
#命名空间,如果不配置默认用public
3、再去看看启动日志,发现启动的是服务名却不是tee
4、茶不思夜不寐的,突然发现本地还有个配置文件application.yml,服务名正是启动日志那个,把它改成了xxx,启动,然后使用feign调用,咦好了!
原来application.yml的配置如下
server:
port: 8009
spring:
application:
name: tee
总结:我们公司用的是nacos做服务中心和配置中心,但因为历史原因保留了application.yml,覆盖了导致服务以tee服务名启动,就没有xxx这个服务了
查了下资料,项目的加载顺序:bootstrap > application > 配置中心
并且后者会覆盖前者
hi~我是Mirror,一个为了自由安逸的未来而不断前进的的程序员。
如果你觉得文章对你有一点点帮助,一个小小赞,便是对我的认可,如果有不足之处,也欢迎各位指正。