问题:
Spring Cloud 的路由Zuul,在访问对应的路由时,uri返回500错误,并且检查服务器报错:
解决办法:
pom文件中的引用"spring-cloud-netflix-eureka-client"改为starter的 “spring-cloud-starter-netflix-eureka-client”
解决思路:
看提示错误堆栈发生在netfix client进行load balance的时候。因为zuul默认开启负载均衡,需要实现loadbalanceclient接口。而ribbon需要结合具体的客户端去实现。ribbon-eureka的loadbalancer可以实现此接口。查看引用的包,没有包含ribbon-eureka工具库。如下图所示:
图1 zuul包下只引用的ribbon工具包,没有引用ribbon客户端。
图2为netflix纯粹的客户端,也没有与ribbon结合的工具库。
图3为starter-netflix-eureka-client库,包含了ribbon-eureka工具库。因此引用stater的eureka client库,就可以解决报错问题。