All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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