Go-zero如何实现限流?

提问者:帅平 问题分类:go语言
Go-zero如何实现限流?
1 个回答
ε星空下的誓言з永不忘
ε星空下的誓言з永不忘
主要使用ratelimiter中间件来实现API流量控制,示例如下:
1、创建limiter实例
#这里rate.Limit(qps)用来设置每秒允许的请求量,qps*3用来设置瞬间最大并发数。
limiter := rate.NewLimiter(rate.Limit(qps), qps*3)
2、在请求处理中使用limiter实例
#通过limiter.Allow()判断当前请求是否允许访问,如果超过了请求数,则返回http.StatusTooManyRequests错误。
if!limiter.Allow() {
    return http.StatusTooManyRequests, nil
}
发布于:11小时前 IP属地:
我来回答