Class Loadbalancer<RSC>

java.lang.Object
io.stargate.sdk.loadbalancer.Loadbalancer<RSC>
Type Parameters:
RSC - resources

public class Loadbalancer<RSC> extends Object
Generic implementation of a client-side load balancer. It will handle multiple algorithms: RANDOM, LOAD BALANCING, WEIGHT BALANCING.
Author:
Cedrick LUNVEN (@clunven)
  • Constructor Details

    • Loadbalancer

      public Loadbalancer(RSC... lst)
      Constructor with default policy LOAD BALACING.
      Parameters:
      lst - list of resources
    • Loadbalancer

      public Loadbalancer(LoadBalancingPolicy policy, List<LoadBalancedResource<RSC>> listRsc)
      Initialization of the resources. Weights are part of LoadBalancedResource.
      Parameters:
      policy - current policy
      listRsc - list of resources
    • Loadbalancer

      public Loadbalancer(LoadBalancingPolicy policy, RSC... resources)
      Initialization of the resources. Weights are part of LoadBalancedResource.
      Parameters:
      policy - current policy
      resources - list of resources
  • Method Details

    • getLoadBalancedResource

      public final LoadBalancedResource<RSC> getLoadBalancedResource()
      Main mthod to retrieve a resource from loadbalancing.
      Returns:
      current resource
    • get

      public RSC get()
      Main method, provide an available resource.
      Returns:
      resource name
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • handleComponentError

      public final LoadBalancedResource<RSC> handleComponentError(LoadBalancedResource<RSC> component, Throwable parentException)
      Ce composant permet la gestion des erreurs pour un composant. On le rend indisponible. Pour que le load-balancing fonctionne il faut r�partir la charge sur les �l�ments restants (s'il en reste) et remettre les compteurs d'utilisation � 0. IL faut �galement remettre le total count � 1.
      Parameters:
      component - composant qui a rencontr� une erreur
      parentException - exception lev�e lors de l'ex�cution du composant
      Returns:
      gestion des erreurs
    • getResourceList

      public final List<LoadBalancedResource<RSC>> getResourceList()
      Permet de rechercher la liste des �lemtents.
      Returns:
      la liste des �l�ments
    • getTotalCount

      public final double getTotalCount()
      Accesseur en lecture pour totalCount.
      Returns:
      the totalCount
    • setTotalCount

      public final void setTotalCount(int ptotalCount)
      Accesseur en �criture pour totalCount.
      Parameters:
      ptotalCount - the totalCount to set
    • getMode

      public final LoadBalancingPolicy getMode()
      Accesseur en lecture pour mode.
      Returns:
      the mode
    • setWrappeeElementList

      public final void setWrappeeElementList(List<LoadBalancedResource<RSC>> pwrappeeElementList)
      Accesseur en �criture pour wrappeeElementList.
      Parameters:
      pwrappeeElementList - the wrappeeElementList to set
    • getUnavailabilityPeriod

      public final int getUnavailabilityPeriod()
      Accesseur en lecture pour unavailabilityPeriod.
      Returns:
      the unavailabilityPeriod
    • setUnavailabilityPeriod

      public final void setUnavailabilityPeriod(int punavailabilityPeriod)
      Accesseur en �criture pour unavailabilityPeriod.
      Parameters:
      punavailabilityPeriod - the unavailabilityPeriod to set
    • getUnavailableCount

      public final int getUnavailableCount()
      Accesseur en lecture pour unavailableCount.
      Returns:
      the unavailableCount
    • setUnavailableCount

      public final void setUnavailableCount(int punavailableCount)
      Accesseur en �criture pour unavailableCount.
      Parameters:
      punavailableCount - the unavailableCount to set
    • getGlobalCount

      public final double getGlobalCount()
      Accesseur en lecture pour globalCount.
      Returns:
      the globalCount