ratelimit

package
v7.0.0-...-1b0c77a Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package ratelimit API 限流中间件

这是以用户或是客户端为单位的限流中间件,如果需要按路由进行限流,需为每个路由指定一个实例。

NOTE: 所有数据保存在 web.Cache 之中,缓存服务重启后数据也将重置。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenIP

func GenIP(ctx *web.Context) (string, error)

GenIP 用于生成区分令牌桶的 IP 地址

Types

type GenFunc

type GenFunc = func(*web.Context) (string, error)

GenFunc 用于生成用户唯一 ID 的函数

用于区分令牌桶所属的用户

type Ratelimit

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

func New

func New(c web.Cache, capacity uint64, rate time.Duration, gen GenFunc) *Ratelimit

New 声明 API 限流的中间件

capacity 桶的容量; rate 发放令牌的时间间隔; gen 为令牌桶名称的产生方法,默认为用户的 IP;

func (*Ratelimit) Middleware

func (rate *Ratelimit) Middleware(next web.HandlerFunc, method, path, router string) web.HandlerFunc

func (*Ratelimit) Unlimit

func (rate *Ratelimit) Unlimit() web.Middleware

Unlimit 返回一个脱离当前限制的中间件

Jump to

Keyboard shortcuts

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