mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 09:49:50 +00:00
change tickRateLimiter to tokenBucketRateLimiter
This commit is contained in:
parent
2edcd3abd5
commit
9781a838da
@ -28,7 +28,7 @@ type RateLimiter interface {
|
|||||||
Stop()
|
Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
type tickRateLimiter struct {
|
type tokenBucketRateLimiter struct {
|
||||||
limiter *ratelimit.Bucket
|
limiter *ratelimit.Bucket
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ type tickRateLimiter struct {
|
|||||||
// The maximum number of tokens in the bucket is capped at 'burst'.
|
// The maximum number of tokens in the bucket is capped at 'burst'.
|
||||||
func NewTokenBucketRateLimiter(qps float32, burst int) RateLimiter {
|
func NewTokenBucketRateLimiter(qps float32, burst int) RateLimiter {
|
||||||
limiter := ratelimit.NewBucketWithRate(float64(qps), int64(burst))
|
limiter := ratelimit.NewBucketWithRate(float64(qps), int64(burst))
|
||||||
return &tickRateLimiter{limiter}
|
return &tokenBucketRateLimiter{limiter}
|
||||||
}
|
}
|
||||||
|
|
||||||
type fakeRateLimiter struct{}
|
type fakeRateLimiter struct{}
|
||||||
@ -48,16 +48,16 @@ func NewFakeRateLimiter() RateLimiter {
|
|||||||
return &fakeRateLimiter{}
|
return &fakeRateLimiter{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *tickRateLimiter) TryAccept() bool {
|
func (t *tokenBucketRateLimiter) TryAccept() bool {
|
||||||
return t.limiter.TakeAvailable(1) == 1
|
return t.limiter.TakeAvailable(1) == 1
|
||||||
}
|
}
|
||||||
|
|
||||||
// Accept will block until a token becomes available
|
// Accept will block until a token becomes available
|
||||||
func (t *tickRateLimiter) Accept() {
|
func (t *tokenBucketRateLimiter) Accept() {
|
||||||
t.limiter.Wait(1)
|
t.limiter.Wait(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *tickRateLimiter) Stop() {
|
func (t *tokenBucketRateLimiter) Stop() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *fakeRateLimiter) TryAccept() bool {
|
func (t *fakeRateLimiter) TryAccept() bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user