当前位置: 代码迷 >> 综合 >> 重读spring coud --------Ribbon
  详细解决方案

重读spring coud --------Ribbon

热度:125   发布时间:2023-10-28 00:29:45.0
  1. 7种负载均衡策略:
    1).随机策略
    2).轮询策略
    3).重试策略 在配置时间段内如果访问不成功,会不断尝试访问一个可用服务
    4).最低并发策略
    5).可用过滤策略 (过滤掉高并发和连接失败的服务)
    6)响应时间加权策略
    7)区域权衡策略

  2. 配置全局策略

@Configuration
public class RibbonConfig {@Beanpublic IRule ribbonRule(){return new RandomRule();}
}
  1. 配置单独策略
    注:avoidscan为自定义注解,用来关闭自动扫描
@Configuration
@AvoidScan
public class RibbonConfig {//    @Bean
//    public IRule ribbonRule(){
//        return new RandomRule();
//    }@AutowiredIClientConfig config;@Beanpublic IRule ribbonRule(IClientConfig config){return new RandomRule();}
}
//启动类添加的注解
@RibbonClient(name="wwmxd-auth",configuration = RibbonConfig.class)
@ComponentScan(excludeFilters = {@ComponentScan.Filter(type= FilterType.ANNOTATION,value = {AvoidScan.class})})
  1. Ribbon默认采用实际调用时再加载上下文,经常导致首次调用失败,未防止这种情况,可以采用饥饿加载
ribbon:eager-load:enabled: trueclients: wwmxd-auth

5.实现原理
将由@LoadBalance注解的restTemplate类,通过@AutoWire注入到list里
在LoadBalancerAutoConfiguration类中,绑定ribbon的拦截器,在拦截器里进行负载均衡(在LoadBalancerClient接口的实现类中进行处理)

  相关解决方案