学无先后,达者为师

网站首页 编程语言 正文

gin实现限流中间件

作者:我的名字豌豆 更新时间: 2022-05-10 编程语言

 在Go编写web类型应用时,我们为了防止用户去非法狂刷接口,从而使得服务器资源被大量占用,在此我们可以对对应用户进行限流操作,当在一段时间内,只允许对应的数量的用户去访问我们对应的服务,代码如下:

具体代码

//限流
func rateLimiter() gin.HandlerFunc  {
//例如: 每秒产生1个令牌,最多存储10个令牌。
	l:=rate.NewLimiter(1,10)
	return func(c *gin.Context) {
		//当没有可用的令牌时返回false,也就是当没有可用的令牌时,禁止通行
		if !l.Allow() {
			c.Abort()
		}
		//用可用的令牌时放行
		c.Next()
	}
}

原文链接:https://blog.csdn.net/liu19721018/article/details/120052392

栏目分类
最近更新