SpringBoot和SpringCloud版本问题:Load balancer does not have available server for client

SpringBoot和SpringCloud版本问题导致的坑,3个小时才搞定
Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: crm-service
    at com.netflix.loadbalancer.LoadBalancerContext.getServerFromLoadBalancer(LoadBalancerContext.java:468)
    
迁移B项目到A项目,最后发现2个项目Spring*版本不一致,猜测很可能就是这个原因导致的。
    因为,其它能想到的办法都试过了。
 

   
        org.springframework.boot
        spring-boot-starter-parent
        1.5.13.RELEASE
         
        
 
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Edgware.SR4
                pom
                import
            
        
      

 
    

"Load balancer does not have available server for client"出现这个问题,可能还有其他原因,网上的解决办法都尝试过了。

所以,最终只能怀疑是版本问题了。

SpringCloud SpringBoot新手上路。

 

在排查过程中,发现一个相关小问题。


@SpringCloudApplication里面嵌套了@SpringBootApplication。
如果需要自定义扫描包路径,放在@SpringCloudApplication的前面。要不然使用的是“@SpringCloudApplication里面的@SpringBootApplication”


@SpringBootApplication(scanBasePackages="com.b")
@SpringCloudApplication

 

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootApplication
@EnableDiscoveryClient
@EnableCircuitBreaker
public @interface SpringCloudApplication {
}

 

自定义路径,是特例,一般也不会遇到这个问题。

你可能感兴趣的:(工作问题)