美文网首页
Spring Cloud Ribbon 自定义Rule

Spring Cloud Ribbon 自定义Rule

作者: 歌哥居士 | 来源:发表于2019-03-30 12:34 被阅读0次

代码方式

服务提供者
第一对服务提供者,ribbon-provider

@GetMapping("/user")private String user() {    return "provider1";}
@GetMapping("/user")private String user() {    return "provider2";}

第二对服务提供者,ribbon-provider-new

@GetMapping("/user")private String user() {    return "provider-new";}
@GetMapping("/user")private String user() {    return "provider-new2";}

服务消费者
控制器

@GetMapping("/user")
private String user() {
    return restTemplate.getForObject("http://ribbon-provider/user", String.class);
}

@GetMapping("/userNew")
private String userNew() {
    return restTemplate.getForObject("http://ribbon-provider-new/user", String.class);
}

配置类

/**
 * 如果该类被@ComponentScan扫描到,所有的@RibbonClient会共享IRule
 * 指定某个服务提供者
 *   方式1. 让该配置类不被扫描到。去掉@Configuration注解,让它不被Spring自动扫描管理
 *   方式2. 手动指定排除掉该类
 */
public class RuleConfiguration {
    @Bean
    public IRule ribbonRule() {
        return new RandomRule();
    }
}
@Configuration
@RibbonClient(name = "ribbon-provider", configuration = RuleConfiguration.class)
public class RibbonConfiguration {}

配置方式

支持的属性如下所示,应以<clientName>.ribbon.下列属性。(属性文件中定义的优先于默认的代码配置的
NFLoadBalancerClassName:应实施ILoadBalancer
NFLoadBalancerRuleClassName:应实施IRule
NFLoadBalancerPingClassName:应实施IPing
NIWSServerListClassName:应实施ServerList
NIWSServerListFilterClassName:应实施ServerListFilter

ribbon-provider.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule

相关文章

网友评论

      本文标题:Spring Cloud Ribbon 自定义Rule

      本文链接:https://www.haomeiwen.com/subject/idthvqtx.html