ratelimit

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 25, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RateLimit

func RateLimit(opts ...Option) middleware.Middleware

RateLimit 返回一个限流中间件

Types

type IPRateLimiter

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

IPRateLimiter 是基于IP的限流器

func NewIPRateLimiter

func NewIPRateLimiter(rate, capacity float64) *IPRateLimiter

NewIPRateLimiter 创建一个新的基于IP的限流器

func (*IPRateLimiter) Allow

func (l *IPRateLimiter) Allow(ctx context.Context) (bool, error)

Allow 实现Limiter接口

type Limiter

type Limiter interface {
	// Allow 判断请求是否被允许
	Allow(ctx context.Context) (bool, error)
}

Limiter 是限流器接口

type Option

type Option func(*options)

Option 是限流中间件的选项

func WithLimiter

func WithLimiter(limiter Limiter) Option

WithLimiter 设置限流器

type TokenBucket

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

TokenBucket 是令牌桶限流器

func NewTokenBucket

func NewTokenBucket(rate, capacity float64) *TokenBucket

NewTokenBucket 创建一个新的令牌桶限流器

func (*TokenBucket) Allow

func (l *TokenBucket) Allow(ctx context.Context) (bool, error)

Allow 实现Limiter接口

Jump to

Keyboard shortcuts

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