场景
利用Ribbon来实现负载均衡
报错提示
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ribbonLoadBalancer' defined in org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration: Unsatisfied dependency expressed through method 'ribbonLoadBalancer' parameter 3; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.netflix.loadbalancer.IRule' available: expected single matching bean but found 2: myRule,getRule
问题产生的原因
消费者REST_URL_PREFIX的值错误
,应该对应提供者application.yml(配置问题中spring.application.name
) 。
我的错误原因是使用了Eureka中的Application的名称,它这个是大写的
消费者启动程序中的@RibbonClient – name的值没有对应Eureka服务中的Application名称,注意:是区分大小写的
解决问题
提供者的spring.application.name的值
与REST_URL_PREFIX的值
对应就行
Eureka服务中的Application的值
与消费者主启动类中的@RibbonClient--name 的值
保持一致