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

com.netflix.discovery.shared.transport.DefaultEurekaTransportConfig Maven / Gradle / Ivy

There is a newer version: 2.0.4
Show newest version
package com.netflix.discovery.shared.transport;

import com.netflix.config.DynamicPropertyFactory;

/**
 * @author David Liu
 */
public class DefaultEurekaTransportConfig implements EurekaTransportConfig {
    private static final String SUB_NAMESPACE = "transport.";

    private final String namespace;
    private final DynamicPropertyFactory configInstance;

    public DefaultEurekaTransportConfig(String parentNamespace, DynamicPropertyFactory configInstance) {
        this.namespace = parentNamespace == null
                ? SUB_NAMESPACE
                : parentNamespace + SUB_NAMESPACE;
        this.configInstance = configInstance;
    }

    @Override
    public int getSessionedClientReconnectIntervalSeconds() {
        return configInstance.getIntProperty(namespace + "sessionedClientReconnectIntervalSeconds", 20*60).get();
    }

    @Override
    public double getRetryableClientQuarantineRefreshPercentage() {
        return configInstance.getDoubleProperty(namespace + "retryableClientQuarantineRefreshPercentage", 0.66).get();
    }

    @Override
    public int getApplicationsResolverDataStalenessThresholdSeconds() {
        return configInstance.getIntProperty(namespace + "applicationsResolverDataStalenessThresholdSeconds", 5*60).get();
    }

    @Override
    public boolean applicationsResolverUseIp() {
        return configInstance.getBooleanProperty(namespace + "applicationsResolverUseIp", false).get();
    }

    @Override
    public int getAsyncResolverRefreshIntervalMs() {
        return configInstance.getIntProperty(namespace + "asyncResolverRefreshIntervalMs", 5*60*1000).get();
    }

    @Override
    public int getAsyncResolverWarmUpTimeoutMs() {
        return configInstance.getIntProperty(namespace + "asyncResolverWarmupTimeoutMs", 5000).get();
    }

    @Override
    public int getAsyncExecutorThreadPoolSize() {
        return configInstance.getIntProperty(namespace + "asyncExecutorThreadPoolSize", 5).get();
    }

    @Override
    public String getWriteClusterVip() {
        return configInstance.getStringProperty(namespace + "writeClusterVip", null).get();
    }

    @Override
    public String getReadClusterVip() {
        return configInstance.getStringProperty(namespace + "readClusterVip", null).get();
    }

    @Override
    public String getBootstrapResolverStrategy() {
        return configInstance.getStringProperty(namespace + "bootstrapResolverStrategy", null).get();
    }

    @Override
    public boolean useBootstrapResolverForQuery() {
        return configInstance.getBooleanProperty(namespace + "useBootstrapResolverForQuery", true).get();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy