org.jclouds.cloudloadbalancers.domain.internal
Class BaseNode<T extends BaseNode<T>>

java.lang.Object
  extended by org.jclouds.cloudloadbalancers.domain.internal.BaseNode<T>
All Implemented Interfaces:
Comparable<BaseNode<T>>
Direct Known Subclasses:
Node, NodeRequest

public class BaseNode<T extends BaseNode<T>>
extends Object
implements Comparable<BaseNode<T>>

The nodes defined by the load balancer are responsible for servicing the requests received through the load balancer's virtual IP. By default, the load balancer employs a basic health check that ensures the node is listening on its defined port. The node is checked at the time of addition and at regular intervals as defined by the load balancer health check configuration. If a back-end node is not listening on its port or does not meet the conditions of the defined active health check for the load balancer, then the load balancer will not forward connections and its status will be listed as OFFLINE. Only nodes that are in an ONLINE status will receive and be able to service traffic from the load balancer.

All nodes have an associated status that indicates whether the node is ONLINE, OFFLINE, or DRAINING. Only nodes that are in ONLINE status will receive and be able to service traffic from the load balancer. The OFFLINE status represents a node that cannot accept or service traffic. A node in DRAINING status represents a node that stops the traffic manager from sending any additional new connections to the node, but honors established sessions. If the traffic manager receives a request and session persistence requires that the node is used, the traffic manager will use it. The status is determined by the passive or active health monitors.

If the WEIGHTED_ROUND_ROBIN load balancer algorithm mode is selected, then the caller should assign the relevant weights to the node as part of the weight attribute of the node element. When the algorithm of the load balancer is changed to WEIGHTED_ROUND_ROBIN and the nodes do not already have an assigned weight, the service will automatically set the weight to "1" for all nodes.

Author:
Adrian Cole
See Also:

Nested Class Summary
static class BaseNode.Builder<T extends BaseNode<T>>
           
static class BaseNode.Condition
          Virtual IP Conditions
 
Field Summary
protected  String address
           
protected  BaseNode.Condition condition
           
protected  int port
           
protected  Integer weight
           
 
Constructor Summary
protected BaseNode()
           
  BaseNode(String address, int port, BaseNode.Condition condition, Integer weight)
           
 
Method Summary
static
<T extends BaseNode<T>>
BaseNode.Builder<T>
builder()
           
 int compareTo(BaseNode<T> arg0)
           
 boolean equals(Object obj)
           
 String getAddress()
           
 BaseNode.Condition getCondition()
           
 int getPort()
           
 Integer getWeight()
          the maximum weight of a node is 100.
 int hashCode()
           
 BaseNode.Builder<T> toBuilder()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

address

protected String address

port

protected int port

condition

protected BaseNode.Condition condition

weight

protected Integer weight
Constructor Detail

BaseNode

protected BaseNode()

BaseNode

public BaseNode(String address,
                int port,
                BaseNode.Condition condition,
                Integer weight)
Method Detail

builder

public static <T extends BaseNode<T>> BaseNode.Builder<T> builder()

toBuilder

public BaseNode.Builder<T> toBuilder()

getAddress

public String getAddress()

getPort

public int getPort()

getCondition

public BaseNode.Condition getCondition()

getWeight

public Integer getWeight()
the maximum weight of a node is 100.


compareTo

public int compareTo(BaseNode<T> arg0)
Specified by:
compareTo in interface Comparable<BaseNode<T extends BaseNode<T>>>

hashCode

public int hashCode()
Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2009-2011 jclouds. All Rights Reserved.