微服务报com.netflix.client.ClientException:Load balancer does not have avaliable server for client: xxx

【踩坑笔记】Rureka注册中心没有及时刷新注册进其的微服务

项目结构图

微服务报com.netflix.client.ClientException:Load balancer does not have avaliable server for client: xxx

1.问题描述

最近在学习OpenFeign中的超时控制时,为了测试,创建了一个微服务项目cloud2020,里面有一下三个微服务(分别是eureka-server7001注册中心cloud-provider-payment8001支付模块cloud-consumer-feign-order订单模块),在分别依次启动eureka-server7001->cloud-provider-payment8001->cloud-consumer-feign-order服务后,访问http://localhost:8000/consumer/payment/feign/timeout地址时正确结果应该是在页面显示8001,然而却出现了以下错误:

微服务报com.netflix.client.ClientException:Load balancer does not have avaliable server for client: xxx
**CLOUD-PAYMENT-SERVICE**该服务没有被注册进·Eureka注册中心·,然而理论上来讲应该已经被注册进了,其他任何配置文件和代码什么的都没有问题。

2.问题解决

既然报了CLOUD-PAYMENT-SERVICE服务没有注册进Eureka,那我们就进入Eureka看看:
微服务报com.netflix.client.ClientException:Load balancer does not have avaliable server for client: xxx
可以看到CLOUD-PAYMENT-SERVICE服务确实已经被注册进Eureka中了,我们刷新该网页之后再次访问http://localhost:8000/consumer/payment/feign/timeout地址
微服务报com.netflix.client.ClientException:Load balancer does not have avaliable server for client: xxx
这时显示出了正确结果

3.问题总结

当我们碰到该类问题时,在排除了配置文件,代码等方面的错误后,如果依然报xxx服务没有被注册进Eureka时,打开Eureka的网页刷新一下,如果页面显示xxx服务已经被注册进其中,这时再次访问之前报错的url,就不会有问题了。该问题应该是Eureka自身的一些bug或者是一些别的隐藏知识点(我本人也是刚开始学习微服务,如果有对知识认识不正确或者理解错误的地方,请大家评论指出来,相互学习,在此先谢谢各位了~)

联系作者

QQ: 2805005861