Class 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.

    • Epr 1: 5
    • Epr 2: 3
    • Epr 3: 2

    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 Detail

      • WeightedRoundRobin

        public WeightedRoundRobin()
    • Method Detail

      • setApplicationMembers

        public void setApplicationMembers​(List<org.apache.axis2.clustering.Member> members)
        we are not supporting members
        Specified by:
        setApplicationMembers in interface LoadbalanceAlgorithm
        Parameters:
        members - The application members
      • 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 org.apache.axis2.clustering.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
      • 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()