问题现象
您已经试图将服务消费者和服务提供者注册到Eureka,且在Eureka控制台已确保服务被成功注册,但仍报错Load balancer does not have available server for client: {your-service-name},如下图所示。
或是您的服务提供者信息(如:地址)发生了变化,但消费者从服务端获取到的仍为旧信息,导致服务调用失败。
问题原因
正常配置下,Eureka客户端会以一定的时间间隔定期向服务端获取服务的增量更新信息。当服务消费者端的数据获取间隔(eureka.client.registry-fetch-interval-seconds)设置过长时,消费者将无法及时感知到服务端最新数据的更新。
解决方案
将您服务消费者客户端配置中的数据获取间隔(eureka.client.registry-fetch-interval-seconds)时间改小,如改为5秒,如下图所示。但过小的时间间隔会增大客户端的工作负担。