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 |
AbstractServerList<T extends Server> |
The class that defines how a list of servers are obtained, updated and filtered for use by NIWS |
AbstractServerListFilter<T extends Server> |
Class that is responsible to Filter out list of servers from the ones
currently available in the Load Balancer |
AvailabilityFilteringRule |
|
BaseLoadBalancer |
A basic implementation of the load balancer where an arbitrary list of
servers can be set as the server pool. |
ClientConfigEnabledRoundRobinRule |
This class essentially contains the RoundRobinRule class defined in the
loadbalancer package |
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 |
|
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) |
RandomRule |
A loadbalacing strategy that randomly distributes traffic amongst existing
servers. |
ResponseTimeWeightedRule |
Rule that use the average/percentile response times
to assign dynamic "weights" per Server which is then used in
the "Weighted Round Robin" fashion
The basic idea for weighted round robin has been obtained from JCS
The implementation for choosing the endpoint from the list of endpoints
is as follows:Let's assume 4 endpoints:A(wt=10), B(wt=30), C(wt=40),
D(wt=20). |
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. |
ServerStats |
Capture various stats per Server(node) in the LoadBalancer |
WeightedResponseTimeRule |
This class essentially contains the ResponseTimeWeightedRule class defined in
the loadbalancer package |
ZoneAvoidanceRule |
|
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) |