
com.baidu.formula.discovery.autoconfigure.FormulaRibbonClientConfiguration Maven / Gradle / Ivy
package com.baidu.formula.discovery.autoconfigure;
import com.baidu.discovery.client.FormulaClient;
import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.Server;
import com.netflix.loadbalancer.ServerList;
import com.netflix.loadbalancer.ServerListFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author Bowu Dong ([email protected])
*/
@Configuration
public class FormulaRibbonClientConfiguration {
@Autowired
private FormulaClient formulaClient;
@Value("${ribbon.client.name}")
private String serviceId = "client";
protected static final String VALUE_NOT_SET = "__not__set__";
protected static final String DEFAULT_NAMESPACE = "ribbon";
public FormulaRibbonClientConfiguration() {
}
public FormulaRibbonClientConfiguration(String serviceId) {
this.serviceId = serviceId;
}
@Bean
@ConditionalOnMissingBean
public ServerList> ribbonServerList(IClientConfig config, FormulaDiscoveryProperties properties) {
FormulaDiscoveryServerList serverList = new FormulaDiscoveryServerList(this.formulaClient, properties);
serverList.initWithNiwsConfig(config);
return serverList;
}
@Bean
public ServerListFilter ribbonServerListFilter() {
return new HealthServiceServiceListFilter();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy