package com.netflix.discovery.shared.transport; /** * Config class that governs configurations relevant to the transport layer * * @author David Liu */ public interface EurekaTransportConfig { /** * @return the reconnect inverval to use for sessioned clients */ int getSessionedClientReconnectIntervalSeconds(); /** * @return the percentage of the full endpoints set above which the quarantine set is cleared in the range [0, 1.0] */ double getRetryableClientQuarantineRefreshPercentage(); /** * @return the max staleness threshold tolerated by the applications resolver */ int getApplicationsResolverDataStalenessThresholdSeconds(); /** * By default, the applications resolver extracts the public hostname from internal InstanceInfos for resolutions. * Set this to true to change this behaviour to use ip addresses instead (private ip if ip type can be determined). * * @return false by default */ boolean applicationsResolverUseIp(); /** * @return the interval to poll for the async resolver. */ int getAsyncResolverRefreshIntervalMs(); /** * @return the async refresh timeout threshold in ms. */ int getAsyncResolverWarmUpTimeoutMs(); /** * @return the max threadpool size for the async resolver's executor */ int getAsyncExecutorThreadPoolSize(); /** * The remote vipAddress of the primary eureka cluster to register with. * * @return the vipAddress for the write cluster to register with */ String getWriteClusterVip(); /** * The remote vipAddress of the eureka cluster (either the primaries or a readonly replica) to fetch registry * data from. * * @return the vipAddress for the readonly cluster to redirect to, if applicable (can be the same as the bootstrap) */ String getReadClusterVip(); /** * Can be used to specify different bootstrap resolve strategies. Current supported strategies are: * - default (if no match): bootstrap from dns txt records or static config hostnames * - composite: bootstrap from local registry if data is available * and warm (see {@link #getApplicationsResolverDataStalenessThresholdSeconds()}, otherwise * fall back to a backing default * * @return null for the default strategy, by default */ String getBootstrapResolverStrategy(); /** * By default, the transport uses the same (bootstrap) resolver for queries. * * Set this property to false to use an indirect resolver to resolve query targets * via {@link #getReadClusterVip()}. This indirect resolver may or may not return the same * targets as the bootstrap servers depending on how servers are setup. * * @return true by default. */ boolean useBootstrapResolverForQuery(); }