ratelimit

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewRedisSlidingWindowLimiter

func NewRedisSlidingWindowLimiter(cmd redis.Cmdable,
	interval time.Duration, rate int) ratelimit.Limiter

NewRedisSlidingWindowLimiter 创建一个基于 redis 的滑动窗口限流器. cmd: 可传入 redis 的客户端 interval: 窗口大小 rate: 阈值 表示: 在 interval 内允许 rate 个请求 示例: 1s 内允许 3000 个请求

Types

type Builder

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

func NewBuilder

func NewBuilder(limiter ratelimit.Limiter) *Builder

NewBuilder genKeyFn: 默认使用 IP 限流. logFn: 默认使用 log.Println().

func (*Builder) Build

func (b *Builder) Build() gin.HandlerFunc

func (*Builder) SetKeyGenFunc

func (b *Builder) SetKeyGenFunc(fn func(*gin.Context) string) *Builder

func (*Builder) SetLogFunc

func (b *Builder) SetLogFunc(fn func(msg any, args ...any)) *Builder

Jump to

Keyboard shortcuts

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