Interface | Description |
---|---|
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.
|
Server.MetaInfo |
Additional meta information of a server, which contains
information of the targeting application, as well as server identification
specific for a deployment environment, for example, AWS.
|
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 | Description |
---|---|
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
|
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.
|
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 |
RetryRule | |
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 | Description |
---|---|
AbstractLoadBalancer.ServerGroup |