IClientConfig参数有什么用?

时间:2018-11-02 15:36:27

标签: java spring-boot spring-cloud netflix-ribbon

当我在网络上的演示中查看RibbonConfig的实现时,我注意到他们始终使用IClientConfig配置参数,但实际上从未使用过。例如:

@Autowired
IClientConfig ribbonClientConfig;


@Bean
public IRule ribbonRule(IClientConfig config) { // This parameter is never used
    return new AvailabilityFilteringRule();
}

@Bean
public IPing ribbonPing(IClientConfig config) {
    return new DummyPing();
}

你们知道IClientConfig配置参数的用途吗?在这种情况下,该方法本身并未使用它。

1 个答案:

答案 0 :(得分:0)

我在Moises Macero的书中找到了一个非常相似的示例:使用Spring Boot学习微服务,一种实用的RESTful方法...例如:

public class RibbonConfiguration {

@Bean
public IPing ribbonPing(IClientConfig config) {
    return new PingUrl(false, "/health");
}

@Bean
public IRule ribbonRule(IClientConfig config) {
    return new AvailabilityFilteringRule();
}}

此配置的范围正在更改默认的功能区负载平衡策略。 此外,我在官方文档中发现了这一点:

@Configuration
class DefaultRibbonConfig {
   @Bean
   public IRule ribbonRule() {
      return new BestAvailableRule();
   }

  @Bean
  public IPing ribbonPing() {
    return new PingUrl();
}

  @Bean
   public ServerList<Server> ribbonServerList(IClientConfig config) {
    return new RibbonClientDefaultConfigurationTestsConfig.BazServiceList(config);
}

 @Bean
 public ServerListSubsetFilter serverListFilter() {
     ServerListSubsetFilter filter = new ServerListSubsetFilter();
     return filter;
  }

}

如您所见,前两种方法没有IClientConfig参数,此处为官方文档: Customizing the Default for All Ribbon Clients

因此,我返回到配置文件,并删除了IClientConfig参数,该程序仍然有效。 我认为IClientConfig在这一刻是没有用的。 但是您可以参考IClientConfig作者的评论:IClientConfig

  

定义各种API用于初始化客户端或负载均衡器的客户端配置   并用于方法执行