Versions in this module Expand all Collapse all v1 v1.5.4 Oct 26, 2023 Changes in this version + type BucketShareInfo struct + type QuotaBucketReject struct + func (q *QuotaBucketReject) GetAmountInfos() []ratelimiter.AmountInfo + func (q *QuotaBucketReject) GetQuota(curTimeMs int64, token uint32) *model.QuotaResponse + func (q *QuotaBucketReject) GetQuotaUsed(curTimeMilli int64) ratelimiter.UsageInfo + func (q *QuotaBucketReject) OnRemoteUpdate(remoteQuota ratelimiter.RemoteQuotaResult) + func (q *QuotaBucketReject) Release() + type RateLimiterReject struct + func (g *RateLimiterReject) Destroy() error + func (g *RateLimiterReject) Init(ctx *plugin.InitContext) error + func (g *RateLimiterReject) InitQuota(criteria *ratelimiter.InitCriteria) ratelimiter.QuotaBucket + func (g *RateLimiterReject) IsEnable(cfg config.Configuration) bool + func (g *RateLimiterReject) Name() string + func (g *RateLimiterReject) Type() common.Type + type RemoteAwareQpsBucket struct + func NewRemoteAwareQpsBucket(criteria *ratelimiter.InitCriteria) *RemoteAwareQpsBucket + func (r *RemoteAwareQpsBucket) Allocate(curTimeMs int64, token uint32) *model.QuotaResponse + func (r *RemoteAwareQpsBucket) GetQuotaUsed(serverTimeMilli int64) ratelimiter.UsageInfo + func (r *RemoteAwareQpsBucket) GetTokenBuckets() TokenBuckets + func (r *RemoteAwareQpsBucket) Release() + func (r *RemoteAwareQpsBucket) SetRemoteQuota(remoteQuotas ratelimiter.RemoteQuotaResult) + type TokenBucket struct + func NewTokenBucket(windowKey string, validDuration time.Duration, tokenAmount uint32, ...) *TokenBucket + func (t *TokenBucket) ConfirmLimited(limited uint32, nowMilli int64) + func (t *TokenBucket) ConfirmPassed(passed uint32, nowMilli int64) + func (t *TokenBucket) GetRuleTotal() int64 + func (t *TokenBucket) GiveBackToken(identifier *UpdateIdentifier, token int64, mode TokenBucketMode) + func (t *TokenBucket) TryAllocateToken(token uint32, nowMilli int64, identifier *UpdateIdentifier, ...) (int64, TokenBucketMode) + func (t *TokenBucket) UpdateRemoteClientCount(remoteQuotas ratelimiter.RemoteQuotaResult) + func (t *TokenBucket) UpdateRemoteToken(remoteQuotas ratelimiter.RemoteQuotaResult, updateClient bool) + type TokenBucketMode int + const Local + const Remote + const RemoteToLocal + const Unknown + type TokenBuckets []*TokenBucket + func (tbs TokenBuckets) Len() int + func (tbs TokenBuckets) Less(i, j int) bool + func (tbs TokenBuckets) Swap(i, j int) + type UpdateIdentifier struct