com.netflix.loadbalancer
Class AbstractLoadBalancer

java.lang.Object
  extended by com.netflix.loadbalancer.AbstractLoadBalancer
All Implemented Interfaces:
ILoadBalancer
Direct Known Subclasses:
BaseLoadBalancer, NoOpLoadBalancer

public abstract class AbstractLoadBalancer
extends java.lang.Object
implements ILoadBalancer

AbstractLoadBalancer contains features required for most loadbalancing implementations. An anatomy of a typical LoadBalancer consists of 1. A List of Servers (nodes) that are potentially bucketed based on a specific criteria. 2. A Class that defines and implements a LoadBalacing Strategy via IRule 3. A Class that defines and implements a mechanism to determine the suitability/availability of the nodes/servers in the List.


Nested Class Summary
static class AbstractLoadBalancer.ServerGroup
           
 
Constructor Summary
AbstractLoadBalancer()
           
 
Method Summary
 Server chooseServer()
          delegate to ILoadBalancer.chooseServer(Object) with parameter null.
abstract  LoadBalancerStats getLoadBalancerStats()
          Obtain LoadBalancer related Statistics
abstract  java.util.List<Server> getServerList(AbstractLoadBalancer.ServerGroup serverGroup)
          List of servers that this Loadbalancer knows about
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.netflix.loadbalancer.ILoadBalancer
addServers, chooseServer, markServerDown
 

Constructor Detail

AbstractLoadBalancer

public AbstractLoadBalancer()
Method Detail

chooseServer

public Server chooseServer()
delegate to ILoadBalancer.chooseServer(Object) with parameter null.


getServerList

public abstract java.util.List<Server> getServerList(AbstractLoadBalancer.ServerGroup serverGroup)
List of servers that this Loadbalancer knows about

Parameters:
availableOnly - if true will only return the subset of servers that are in the list as marked as "up" a null value will send all servers
Returns:

getLoadBalancerStats

public abstract LoadBalancerStats getLoadBalancerStats()
Obtain LoadBalancer related Statistics

Returns: