Kong的插件:Rate Limiting

简述

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

操作起来
试验准备
  • 要有一个可用的service和route,如果没有可以参照https://blog.csdn.net/u014686399/article/details/100084613,我的试验也是基于这个的
启用插件
/services/bd7a85b9-27e2-4f66-80cd-980976bdb4ff/plugins POST

{
	"name":"rate-limiting",
	"config":{
		"second": 20
	}
}
  • 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值