Class ExactRateLimiter

  • All Implemented Interfaces:
    RateLimiter

    public class ExactRateLimiter
    extends RateLimiterBase
    A RateLimiter that compromises efficiency for accuracy in order to provide exact rate limiting.
    • Constructor Detail

      • ExactRateLimiter

        public ExactRateLimiter()
    • Method Detail

      • getDefaultPolicyName

        protected java.lang.String getDefaultPolicyName()
        Description copied from class: RateLimiterBase
        If policy name has not been specified, the first call of RateLimiterBase.getPolicyName() returns an auto-generated policy name using the default policy name as prefix and followed by auto-increase index.
        Specified by:
        getDefaultPolicyName in class RateLimiterBase
        Returns:
        default policy name, as a prefix of auto-generated policy name.
      • newCounterInstance

        protected TimeBucketCounterBase newCounterInstance​(int duration,
                                                           java.util.concurrent.ScheduledExecutorService executorService)
        Description copied from class: RateLimiterBase
        Instantiate an instance of TimeBucketCounterBase for specific time bucket size. Concrete classes determine its counter policy by returning different implementation instances.
        Specified by:
        newCounterInstance in class RateLimiterBase
        Parameters:
        duration - size of each time bucket in seconds
        executorService - the executor
        Returns:
        counter instance of TimeBucketCounterBase