zoukankan      html  css  js  c++  java
  • Feign报错Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client

    问题描述

    使用Feign调用微服务接口报错,如下:

    java.lang.RuntimeException: com.netflix.client.ClientException: Load balancer does not have available server for client: app1
    	at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:71)
    	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:97)
    	at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
    	at feign.hystrix.HystrixInvocationHandler$1.run(HystrixInvocationHandler.java:108)
    	at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:302)
    	at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:298)
    	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46)
    	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.Observable.unsafeSubscribe(Observable.java:10211)
    	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)
    	at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)
    	at rx.Observable.unsafeSubscribe(Observable.java:10211)
    	at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)
    	at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.Observable.unsafeSubscribe(Observable.java:10211)
    	at rx.internal.operators.OperatorSubscribeOn$1.call(OperatorSubscribeOn.java:94)
    	at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:56)
    	at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:47)
    	at org.springframework.security.concurrent.DelegatingSecurityContextCallable.call(DelegatingSecurityContextCallable.java:86)
    	at com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction.call(HystrixContexSchedulerAction.java:69)
    	at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:748)
    Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: app1
    	at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalancer(LoadBalancerContext.java:483)
    	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:184)
    	at com.netflix.loadbalancer.reactive.LoadBalancerCommand$1.call(LoadBalancerCommand.java:180)
    	at rx.Observable.unsafeSubscribe(Observable.java:10211)
    	at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:94)
    	at rx.internal.operators.OnSubscribeConcatMap.call(OnSubscribeConcatMap.java:42)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)
    	at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)
    	at rx.Observable.subscribe(Observable.java:10307)
    	at rx.Observable.subscribe(Observable.java:10274)
    	at rx.observables.BlockingObservable.blockForSingle(BlockingObservable.java:445)
    	at rx.observables.BlockingObservable.single(BlockingObservable.java:342)
    	at com.netflix.client.AbstractLoadBalancerAwareClient.executeWithLoadBalancer(AbstractLoadBalancerAwareClient.java:117)
    	at org.springframework.cloud.netflix.feign.ribbon.LoadBalancerFeignClient.execute(LoadBalancerFeignClient.java:63)
    	... 33 common frames omitted
    

    问题解决

    原因可能有两个:

    • 1.没有引入Eureka依赖
    • 2.@AuthorizedFeignClient注解中name写错,比如这次我按照教程以为name写app1就好,其实不然……

    1.引入依赖

            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-eureka</artifactId>
            </dependency>
    

    2.将name修改正确的被调用服务的spring.application.name名称

  • 相关阅读:
    Delphi 与 DirectX 之 DelphiX(10): TPictureCollectionItem.StretchDraw 绘制到指定矩形
    Delphi 与 DirectX 之 DelphiX(11): TPictureCollectionItem.DrawAdd、DrawSub
    Delphi 与 DirectX 之 DelphiX(13): TPictureCollectionItem.DrawRotate
    Delphi 与 DirectX 之 DelphiX(8): 第一个简单动画
    上周热点回顾(10.2210.28)
    如果云计算
    网站已恢复正常,让大家久等了
    上周热点回顾(10.1510.21)
    10.24,今天是程序员节,祝大家节日快乐
    园豆兑换阿里云代金券 体验阿里云云服务器
  • 原文地址:https://www.cnblogs.com/hellxz/p/8920378.html
Copyright © 2011-2022 走看看