com.netflix.loadbalancer
Class ZoneAvoidanceRule

java.lang.Object
  extended by com.netflix.loadbalancer.AbstractLoadBalancerRule
      extended by com.netflix.loadbalancer.ClientConfigEnabledRoundRobinRule
          extended by com.netflix.loadbalancer.PredicateBasedRule
              extended by com.netflix.loadbalancer.ZoneAvoidanceRule
All Implemented Interfaces:
com.netflix.client.IClientConfigAware, IRule

public class ZoneAvoidanceRule
extends PredicateBasedRule

A rule that uses the a CompositePredicate to filter servers based on zone and availability. The primary predicate is composed of a ZoneAvoidancePredicate and AvailabilityPredicate, with the fallbacks to AvailabilityPredicate and an "always true" predicate returned from AbstractServerPredicate.alwaysTrue()


Constructor Summary
ZoneAvoidanceRule()
           
 
Method Summary
static java.util.Set<java.lang.String> getAvailableZones(LoadBalancerStats lbStats, double triggeringLoad, double triggeringBlackoutPercentage)
           
static java.util.Set<java.lang.String> getAvailableZones(java.util.Map<java.lang.String,ZoneSnapshot> snapshot, double triggeringLoad, double triggeringBlackoutPercentage)
           
 AbstractServerPredicate getPredicate()
          Method that provides an instance of AbstractServerPredicate to be used by this class.
 void initWithNiwsConfig(com.netflix.client.config.IClientConfig clientConfig)
           
 
Methods inherited from class com.netflix.loadbalancer.PredicateBasedRule
choose
 
Methods inherited from class com.netflix.loadbalancer.ClientConfigEnabledRoundRobinRule
setLoadBalancer
 
Methods inherited from class com.netflix.loadbalancer.AbstractLoadBalancerRule
getLoadBalancer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ZoneAvoidanceRule

public ZoneAvoidanceRule()
Method Detail

initWithNiwsConfig

public void initWithNiwsConfig(com.netflix.client.config.IClientConfig clientConfig)
Specified by:
initWithNiwsConfig in interface com.netflix.client.IClientConfigAware
Overrides:
initWithNiwsConfig in class ClientConfigEnabledRoundRobinRule

getAvailableZones

public static java.util.Set<java.lang.String> getAvailableZones(java.util.Map<java.lang.String,ZoneSnapshot> snapshot,
                                                                double triggeringLoad,
                                                                double triggeringBlackoutPercentage)

getAvailableZones

public static java.util.Set<java.lang.String> getAvailableZones(LoadBalancerStats lbStats,
                                                                double triggeringLoad,
                                                                double triggeringBlackoutPercentage)

getPredicate

public AbstractServerPredicate getPredicate()
Description copied from class: PredicateBasedRule
Method that provides an instance of AbstractServerPredicate to be used by this class.

Specified by:
getPredicate in class PredicateBasedRule