GSAdmin限流功能怎么使用

今天小编给大家分享一下GS Admin限流功能怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

创新互联长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为肥乡企业提供专业的成都做网站、网站设计,肥乡网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。

仓库

giee: gitee.com/kevn/gsadmin/tree/master
github: github.com/sonhineboy/gsadmin

说明

在日常网站的运营过程种,当并发数达到我们服务的阈值的时候,我们可以通过限流的方式保证服务可用性。

常见的限流方法:

1. 使用带缓冲的 chann,当 chan 塞满以后,拒绝服务或者给一个友好的提示或跳转到一个友好的页面等。

2. 计数器,在 10 秒内只接受 100 请求,当超过 100 请求后,拒绝服务,当超过 10 秒后,计数归零,重新接受请求。

3. 使用 httpserver 的频率限制,无需自己实现。

4. 令牌桶算法:以恒定的速度往令牌桶中放入令牌,当有请求过来则从令牌桶中获取令牌进行后续请求,当获取令牌失败后则进行友好处理。

GS Admin限流功能怎么使用

5. 漏桶算法:请求先进入到漏桶里,而漏桶以固定的速率处理请求,当请求数量超过漏桶的容量时,将超出的请求进行友好处理,不适合突发请求场景。

GS Admin限流功能怎么使用

上面两种令牌的算法区别:漏桶算法,能够强行限制传输速率,令牌桶算法:能够限制平均传输速率,允许某种突发情况。

GS Admin 限流方式

GS Admin 采用 golang 内部有一个非常好用的限流器 time/rate 位于 golang.org/x/time/rate 具体的用法可以产靠官方文档。GS Admin 已经封装了 web 中间件只需要在配置文件配置想应得参数就可以了

rate:
  limit: 15 //每秒产生得令牌数量
  burst: 2 //令牌得大小

经过测试如果超过了限流,中间件就会触发,代码如下

func Limiter() gin.HandlerFunc {
    return func(c *gin.Context) {
        if global.Limiter.Allow() == false {
            global.Response{}.Failed(c, "当前请求过快,请稍后再试!")
            c.Abort()
            return
        }
        c.Next()
    }
}

以上就是“GS Admin限流功能怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注创新互联行业资讯频道。

当前题目:GSAdmin限流功能怎么使用
网页URL:https://www.cdcxhl.com/article4/jhsjoe.html

成都网站建设公司_创新互联,为您提供移动网站建设网站策划建站公司网站营销网站导航关键词优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都app开发公司