Package com.netflix.loadbalancer

Interface Summary
ILoadBalancer Interface that defines the operations for a software loadbalancer.
IPing Interface that defines how we "ping" a server to check if its alive
IRule Interface that defines a "Rule" for a LoadBalancer.
LoadBalancerCommand<T> An interface that provides API to be used by LoadBalancerExecutor to execute a task on a server.
LoadBalancerObservableCommand<T>  
ServerList<T extends Server> Interface that defines the methods sed to obtain the List of Servers
ServerListChangeListener  
ServerListFilter<T extends Server> This interface allows for filtering the configured or dynamically obtained List of candidate servers with desirable characteristics.
 

Class Summary
AbstractLoadBalancer AbstractLoadBalancer contains features required for most loadbalancing implementations.
AbstractLoadBalancerPing Class that provides the basic implementation of detmerining the "liveness" or suitability of a Server (a node)
AbstractLoadBalancerRule Class that provides a default implementation for setting and getting load balancer
AbstractServerList<T extends Server> The class includes an API to create a filter to be use by load balancer to filter the servers returned from ServerList.getUpdatedListOfServers() or ServerList.getInitialListOfServers().
AbstractServerListFilter<T extends Server> Class that is responsible to Filter out list of servers from the ones currently available in the Load Balancer
AbstractServerPredicate A basic building block for server filtering logic which can be used in rules and server list filters.
AvailabilityFilteringRule A load balancer rule that filters out servers that: are in circuit breaker tripped state due to consecutive connection or read failures, or have active connections that exceeds a configurable limit (default is Integer.MAX_VALUE). The property to change this limit is
AvailabilityPredicate Predicate with the logic of filtering out circuit breaker tripped servers and servers with too many concurrent connections from this client.
BaseLoadBalancer A basic implementation of the load balancer where an arbitrary list of servers can be set as the server pool.
BestAvailableRule A rule that skips servers with "tripped" circuit breaker and picks the server with lowest concurrent requests.
ClientConfigEnabledRoundRobinRule This class essentially contains the RoundRobinRule class defined in the loadbalancer package
CommandToObservableConverter<T>  
CompositePredicate A predicate that is composed from one or more predicates in "AND" relationship.
CompositePredicate.Builder  
ConfigurationBasedServerList Utility class that can load the List of Servers from a Configuration (i.e properties available via Archaius).
DummyPing Default simple implementation that marks the liveness of a Server
DynamicServerListLoadBalancer<T extends Server> A LoadBalancer that has the capabilities to obtain the candidate list of servers using a dynamic source.
InterruptTask  
LoadBalancerBuilder<T extends Server>  
LoadBalancerContext A class contains APIs intended to be used be load balancing client which is subclass of this class.
LoadBalancerExecutor Provides APIs to execute and retry tasks on a server chosen by the associated load balancer.
LoadBalancerStats Class that acts as a repository of operational charateristics and statistics of every Node/Server in the LaodBalancer.
NoOpLoadBalancer A noOp Loadbalancer i.e.
NoOpPing No Op Ping
PingConstant A utility Ping Implementation that returns whatever its been set to return (alive or dead)
PredicateBasedRule A rule which delegates the server filtering logic to an instance of AbstractServerPredicate.
PredicateKey The input object of predicates of class AbstractServerPredicate.
RandomRule A loadbalacing strategy that randomly distributes traffic amongst existing servers.
ResponseTimeWeightedRule Deprecated. Use WeightedResponseTimeRule
RetryRule Given that IRule can be cascaded, this RetryRule class allows adding a retry logic to an existing Rule.
RoundRobinRule The most well known and basic loadbalacing strategy, i.e.
Server Class that represents a typical Server (or an addressable Node) i.e.
ServerComparator Class to help establishing equality for Hash/Key operations.
ServerListSubsetFilter<T extends Server> A server list filter that limits the number of the servers used by the load balancer to be the subset of all servers.
ServerStats Capture various stats per Server(node) in the LoadBalancer
WeightedResponseTimeRule Rule that use the average/percentile response times to assign dynamic "weights" per Server which is then used in the "Weighted Round Robin" fashion.
ZoneAffinityPredicate A predicate the filters out servers that are not in the same zone as the client's current zone.
ZoneAffinityServerListFilter<T extends Server> This server list filter deals with filtering out servers based on the Zone affinity.
ZoneAvoidancePredicate A server predicate that filters out all servers in a worst zone if the aggregated metric for that zone reaches a threshold.
ZoneAvoidanceRule A rule that uses the a CompositePredicate to filter servers based on zone and availability.
ZoneAwareLoadBalancer<T extends Server> Load balancer that can avoid a zone as a whole when choosing server.
ZoneSnapshot Captures the metrics on a Per Zone basis (Zone is modeled after the Amazon Availability Zone)
ZoneStats<T extends Server> Class that stores Statistics per Zone (where Zone is typically a Amazon Availability Zone)
 

Enum Summary
AbstractLoadBalancer.ServerGroup