Я нашел очень похожий пример в книге Моизеса Мацеро: Изучите микросервисы с помощью 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, вот официальные документы:
Настройка параметров по умолчанию для всех клиентов ленты
Итак, я вернулся к своему конфигурационному файлу и удалил параметр IClientConfig, и программа все еще работает.
На мой взгляд, IClientConfig в данный момент бесполезен.
Но вы можете сослаться на комментарий автора IClientConfig: IClientConfig
Определяет конфигурацию клиента, используемую различными API для инициализации клиентов или балансировщиков нагрузки.
и для выполнения метода .