Record Class ServiceConfig.LoadBalancingConfig.WeightedRoundRobinLoadBalancingConfig

java.lang.Object
java.lang.Record
org.springframework.boot.grpc.client.autoconfigure.ServiceConfig.LoadBalancingConfig.WeightedRoundRobinLoadBalancingConfig
Record Components:
blackoutPeriod - must report load metrics continuously for at least this long before the endpoint weight will be used
weightExpirationPeriod - if has not reported load metrics in this long, then we stop using the reported weight
outOfBandReportingPeriod - load reporting interval to request from the server
enableOutOfBandLoadReport - whether to enable out-of-band utilization reporting collection from the endpoints
weightUpdatePeriod - how often endpoint weights are recalculated
errorUtilizationPenalty - multiplier used to adjust endpoint weights with the error rate calculated as eps/qps
Enclosing class:
ServiceConfig.LoadBalancingConfig

public static record ServiceConfig.LoadBalancingConfig.WeightedRoundRobinLoadBalancingConfig(Duration blackoutPeriod, Duration weightExpirationPeriod, Duration outOfBandReportingPeriod, Boolean enableOutOfBandLoadReport, Duration weightUpdatePeriod, Float errorUtilizationPenalty) extends Record
'weighted round robin' load balancing.
Since:
4.1.0
Author:
Phillip Webb
  • Constructor Details

    • WeightedRoundRobinLoadBalancingConfig

      public WeightedRoundRobinLoadBalancingConfig(Duration blackoutPeriod, Duration weightExpirationPeriod, Duration outOfBandReportingPeriod, Boolean enableOutOfBandLoadReport, Duration weightUpdatePeriod, Float errorUtilizationPenalty)
      Creates an instance of a WeightedRoundRobinLoadBalancingConfig record class.
      Parameters:
      blackoutPeriod - the value for the blackoutPeriod record component
      weightExpirationPeriod - the value for the weightExpirationPeriod record component
      outOfBandReportingPeriod - the value for the outOfBandReportingPeriod record component
      enableOutOfBandLoadReport - the value for the enableOutOfBandLoadReport record component
      weightUpdatePeriod - the value for the weightUpdatePeriod record component
      errorUtilizationPenalty - the value for the errorUtilizationPenalty record component
  • Method Details

    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • blackoutPeriod

      public Duration blackoutPeriod()
      Returns the value of the blackoutPeriod record component.
      Returns:
      the value of the blackoutPeriod record component
    • weightExpirationPeriod

      public Duration weightExpirationPeriod()
      Returns the value of the weightExpirationPeriod record component.
      Returns:
      the value of the weightExpirationPeriod record component
    • outOfBandReportingPeriod

      public Duration outOfBandReportingPeriod()
      Returns the value of the outOfBandReportingPeriod record component.
      Returns:
      the value of the outOfBandReportingPeriod record component
    • enableOutOfBandLoadReport

      public Boolean enableOutOfBandLoadReport()
      Returns the value of the enableOutOfBandLoadReport record component.
      Returns:
      the value of the enableOutOfBandLoadReport record component
    • weightUpdatePeriod

      public Duration weightUpdatePeriod()
      Returns the value of the weightUpdatePeriod record component.
      Returns:
      the value of the weightUpdatePeriod record component
    • errorUtilizationPenalty

      public Float errorUtilizationPenalty()
      Returns the value of the errorUtilizationPenalty record component.
      Returns:
      the value of the errorUtilizationPenalty record component