使用zuul配置网关后出现了这个报错com.netflix.client.ClientException: Load balancer does not have available server for client: book
解决方法一
在yml中配置文件中加上
ribbon:
eureka:
enabled: false
解决方法二
在pom中加入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
查阅了很多文章后总结有基本都说可以用以上两种方法,但是解决不了我的情况。
我的解决办法
我从下面这篇文章中找到了解决方法https://stackoverflow.com/questions/41401009/load-balancer-does-not-have-available-server-for-client
如果你的注册中心都能看到各模块Application已经注册成功的话,可以试试我这个方法。
这是book模块的yml配置文件
server:
port: 8102
spring:
application:
name: book
这是网关的yml配置文件
zuul:
routes:
book: /book/**
在网关yml配置文件中加入下列代码即可
book: //模块微服务名,就是上面的spring:application:name: book
ribbon:
listOfServers: http://localhost:8102 //模块的注册端口号,就是上面的server:port:8102
完成以后重新启动服务即可