public class LoadBalancerBuilder<T extends Server>
extends java.lang.Object
public static <T extends Server> LoadBalancerBuilder<T> newBuilder()
public LoadBalancerBuilder<T> withFactory(com.netflix.client.IClientConfigAware.Factory factory)
public LoadBalancerBuilder<T> withClientConfig(com.netflix.client.config.IClientConfig config)
public LoadBalancerBuilder<T> withRule(IRule rule)
public LoadBalancerBuilder<T> withPing(IPing ping)
public LoadBalancerBuilder<T> withDynamicServerList(ServerList<T> serverListImpl)
public LoadBalancerBuilder<T> withServerListFilter(ServerListFilter<T> serverListFilter)
public LoadBalancerBuilder<T> withServerListUpdater(ServerListUpdater serverListUpdater)
public BaseLoadBalancer buildFixedServerListLoadBalancer(java.util.List<T> servers)
public ZoneAwareLoadBalancer<T> buildDynamicServerListLoadBalancer()
ZoneAwareLoadBalancer
with a dynamic ServerList
and an IRule
. The ServerList
can be
either set in the withDynamicServerList(ServerList)
or in the IClientConfig
using CommonClientConfigKey.NIWSServerListClassName
.
The IRule
can be either set by withRule(IRule)
or in the IClientConfig
using
CommonClientConfigKey.NFLoadBalancerRuleClassName
.public ZoneAwareLoadBalancer<T> buildDynamicServerListLoadBalancerWithUpdater()
ZoneAwareLoadBalancer
with a dynamic ServerList
and an IRule
and a ServerListUpdater
.
The ServerList
can be either set in the withDynamicServerList(ServerList)
or in the IClientConfig
using CommonClientConfigKey.NIWSServerListClassName
.
The IRule
can be either set by withRule(IRule)
or in the IClientConfig
using
CommonClientConfigKey.NFLoadBalancerRuleClassName
.
The ServerListUpdater
can be either set by withServerListUpdater(ServerListUpdater)
or
in the IClientConfig
using CommonClientConfigKey.ServerListUpdaterClassName
.public ILoadBalancer buildLoadBalancerFromConfigWithReflection()
IClientConfig
only. It uses reflection to initialize necessary load balancer
components.