Kong的插件:Rate Limiting

Love The Way You Lie 2024-04-18 21:33 157阅读 0赞
简述

这个插件是限流使用的,如果我们后端服务扛不住前端的流量或者要防止某些人恶意的使用流量攻击我们,可以考虑一下限流

操作起来

试验准备
  • 要有一个可用的service和route,如果没有可以参照https://blog.csdn.net/u014686399/article/details/100084613,我的试验也是基于这个的
启用插件
  1. /services/bd7a85b9-27e2-4f66-80cd-980976bdb4ff/plugins POST
  2. {
  3. "name":"rate-limiting",
  4. "config":{
  5. "second": 20
  6. }
  7. }
  • bd7a85b9-27e2-4f66-80cd-980976bdb4ff 这是service的id
  • rate-limiting这是插件的名字
  • config是用来配置限流的程序, second是说每秒多少,插件还支持分钟,小时,天,年等插件官网
插件说明

插件支持三种策略来记录请求的频率, 分别是local,cluster,redis

  • cluster,这是默认的方式,也是在要求频率控制精确的场景下,比较提倡的方式。这种方式把频率都记录在数据库中,每次请求过来都要查一下数据库,因此极大的影响了效率。我也简单对比了一下:
    启用插件前:
    在这里插入图片描述
    启用插件后:
    在这里插入图片描述
  • redis, 这种需要引入redis,把频率记录在redis里面,每次请求过来都要查询一下redis,性能肯定比cluster快,但是因为引入redis,要考虑维护redis的成本
  • local,在对精度要求不高的场景下,官方推荐这种方式,在性能和维护上都很不错。如果是在DB-less的场景只能选择redis和local了

测试一下

使用jmeter模拟大访问量的场景:

在这里插入图片描述
在这里插入图片描述
当大流量的时候就会有429的返回码


先写到这里了,有问题进QQ群630300475

发表评论

表情:
评论列表 (有 0 条评论,157人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Kong: ACL

    简述 这个插件使用控制谁可以访问,谁不能访问的。如果使用这个插件,就必须使用认证的插件了比如base-auth, key-auth等。拿base-auth举例: ...

    相关 Kong: JWT

    JWT的简述 JWT是JSON Web Token的缩写,使用cookie的解决跨域认证的问题,和cas系统是不一样的理论。具体可以看一下大神些的文档:http://...

    相关 Kong: hmac

    hmac简述 hmac是Hashing for Message Authentication的简写,可以用来保证数据的完整,客户端把内容通过散列/哈希算法算出一个摘要...