org.apache.synapse.endpoints.algorithms
Class WeightedRoundRobin

java.lang.Object
  extended by org.apache.synapse.endpoints.algorithms.WeightedRoundRobin
All Implemented Interfaces:
Cloneable, LoadbalanceAlgorithm, ManagedLifecycle

public class WeightedRoundRobin
extends Object
implements LoadbalanceAlgorithm, ManagedLifecycle

This algorithm sends messages based on the weights of the endpoints. For example we may have 3 endpoints with following weights.

This algorithm will send the first 5 messages through Epr1, next 3 messages through Epr2 and next 2 messages with Epr3. Then algorithm moves again to the first endpoint and cycle continues.


Constructor Summary
WeightedRoundRobin()
           
 
Method Summary
 void changeWeight(int pos, int weight)
           
 LoadbalanceAlgorithm clone()
           
 void destroy()
          This method should implement the destroying of the implemented parts of the configuration.
 int[] getCurrentWeights()
           
 String getName()
          Return the name of the load balancing algorithm
 Member getNextApplicationMember(AlgorithmContext algorithmContext)
          This method returns the next member to which the request has been sent to, according to the algorithm implementation.
 Endpoint getNextEndpoint(MessageContext synapseMessageContext, AlgorithmContext algorithmContext)
          This method returns the next node according to the algorithm implementation.
 void init(SynapseEnvironment se)
          This method should implement the initialization of the implemented parts of the configuration.
 void reset(AlgorithmContext algorithmContext)
          Resets the algorithm to its initial position.
 void setApplicationMembers(List<Member> members)
          we are not supporting members
 void setEndpoints(List<Endpoint> endpoints)
          Set the endpoints
 void setLoadBalanceEndpoint(Endpoint endpoint)
          Set the loadbalance endpoint
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WeightedRoundRobin

public WeightedRoundRobin()
Method Detail

setApplicationMembers

public void setApplicationMembers(List<Member> members)
we are not supporting members

Specified by:
setApplicationMembers in interface LoadbalanceAlgorithm
Parameters:
members - The application members

setEndpoints

public void setEndpoints(List<Endpoint> endpoints)
Description copied from interface: LoadbalanceAlgorithm
Set the endpoints

Specified by:
setEndpoints in interface LoadbalanceAlgorithm
Parameters:
endpoints - The endpoints

setLoadBalanceEndpoint

public void setLoadBalanceEndpoint(Endpoint endpoint)
Description copied from interface: LoadbalanceAlgorithm
Set the loadbalance endpoint

Specified by:
setLoadBalanceEndpoint in interface LoadbalanceAlgorithm
Parameters:
endpoint - the endpoint which uses this algorithm

getNextEndpoint

public Endpoint getNextEndpoint(MessageContext synapseMessageContext,
                                AlgorithmContext algorithmContext)
Description copied from interface: LoadbalanceAlgorithm
This method returns the next node according to the algorithm implementation.

Specified by:
getNextEndpoint in interface LoadbalanceAlgorithm
Parameters:
synapseMessageContext - SynapseMessageContext of the current message
algorithmContext - The context in which holds run time states related to the algorithm
Returns:
Next node for directing the message

getNextApplicationMember

public Member getNextApplicationMember(AlgorithmContext algorithmContext)
Description copied from interface: LoadbalanceAlgorithm
This method returns the next member to which the request has been sent to, according to the algorithm implementation.

Specified by:
getNextApplicationMember in interface LoadbalanceAlgorithm
Parameters:
algorithmContext - The context in which holds run time states related to the algorithm
Returns:
Next application member to which the request has to be sent to

reset

public void reset(AlgorithmContext algorithmContext)
Description copied from interface: LoadbalanceAlgorithm
Resets the algorithm to its initial position. Initial position depends on the implementation.

Specified by:
reset in interface LoadbalanceAlgorithm
Parameters:
algorithmContext - The context in which holds run time states related to the algorithm

getName

public String getName()
Description copied from interface: LoadbalanceAlgorithm
Return the name of the load balancing algorithm

Specified by:
getName in interface LoadbalanceAlgorithm
Returns:
the name of the algorithm implemented

clone

public LoadbalanceAlgorithm clone()
Specified by:
clone in interface LoadbalanceAlgorithm
Overrides:
clone in class Object

init

public void init(SynapseEnvironment se)
Description copied from interface: ManagedLifecycle
This method should implement the initialization of the implemented parts of the configuration.

Specified by:
init in interface ManagedLifecycle
Parameters:
se - SynapseEnvironment to be used for initialization

destroy

public void destroy()
Description copied from interface: ManagedLifecycle
This method should implement the destroying of the implemented parts of the configuration.

Specified by:
destroy in interface ManagedLifecycle

changeWeight

public void changeWeight(int pos,
                         int weight)

getCurrentWeights

public int[] getCurrentWeights()


Copyright © 2005-2012 Apache Software Foundation. All Rights Reserved.