ratelimit

package
v0.0.0-...-faf3767 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 16, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FixWindowLimiter

type FixWindowLimiter struct {
	// contains filtered or unexported fields
}

func NewFixWindowLimiter

func NewFixWindowLimiter(interval time.Duration, rate int64) *FixWindowLimiter

func (*FixWindowLimiter) BuildServerInterceptor

func (f *FixWindowLimiter) BuildServerInterceptor() grpc.UnaryServerInterceptor

type LeakyBucketLimiter

type LeakyBucketLimiter struct {
	// contains filtered or unexported fields
}

func NewLeakyBucketLimiter

func NewLeakyBucketLimiter(interval time.Duration) *LeakyBucketLimiter

func (*LeakyBucketLimiter) BuildServerInterceptor

func (t *LeakyBucketLimiter) BuildServerInterceptor() grpc.UnaryServerInterceptor

func (*LeakyBucketLimiter) Close

func (t *LeakyBucketLimiter) Close() error

type RedisFixWindowLimiter

type RedisFixWindowLimiter struct {
	// contains filtered or unexported fields
}

func NewRedisFixWindowLimiter

func NewRedisFixWindowLimiter(client redis.Cmdable, service string,
	interval time.Duration, rate int) *RedisFixWindowLimiter

func (*RedisFixWindowLimiter) BuildServerInterceptor

func (r *RedisFixWindowLimiter) BuildServerInterceptor() grpc.UnaryServerInterceptor

type RedisSlideWindowLimiter

type RedisSlideWindowLimiter struct {
	// contains filtered or unexported fields
}

func NewRedisSlideWindowLimiter

func NewRedisSlideWindowLimiter(client redis.Cmdable, service string,
	interval time.Duration, rate int) *RedisSlideWindowLimiter

func (*RedisSlideWindowLimiter) BuildServerInterceptor

func (r *RedisSlideWindowLimiter) BuildServerInterceptor() grpc.UnaryServerInterceptor

type SlideWindowLimiter

type SlideWindowLimiter struct {
	// contains filtered or unexported fields
}

func NewSlideWindowLimiter

func NewSlideWindowLimiter(interval time.Duration, rate int) *SlideWindowLimiter

func (*SlideWindowLimiter) BuildServerInterceptor

func (s *SlideWindowLimiter) BuildServerInterceptor() grpc.UnaryServerInterceptor

type TokenBucketLimiter

type TokenBucketLimiter struct {
	// contains filtered or unexported fields
}

func NewTokenBucketLimiter

func NewTokenBucketLimiter(capacity int, interval time.Duration) *TokenBucketLimiter

NewTokenBucketLimiter 创建一个新的令牌桶限流器实例 capacity容量、 interval间隔

func (*TokenBucketLimiter) BuildServerInterceptor

func (t *TokenBucketLimiter) BuildServerInterceptor() grpc.UnaryServerInterceptor

BuildServerInterceptor 服务器构建一个拦截器,用于请求限流

func (*TokenBucketLimiter) Close

func (t *TokenBucketLimiter) Close() error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL