kong的插件: Response Rate Limiting

骑猪看日落 2024-04-18 22:05 131阅读 0赞

简述

这也是一种限流的插件和Rate Limiting相似,但是有一定的区别。Response Rate Limiting是由后端服务控制频率的减少,而Rate Limiting是由Kong完成的。
在这里插入图片描述

操作起来

环境准备

你应该有一个能正常使用的service和route,如果没有可以参考https://blog.csdn.net/u014686399/article/details/100084613,我的试验就是基于这个的

启用插件
  1. /routes/1972af43-5cb0-4c84-b15e-b96a2da52893/plugins POST
  2. {
  3. "name":"response-ratelimiting",
  4. "config":{
  5. "limits":{
  6. "xmm":{
  7. "day":10
  8. }
  9. }
  10. }
  11. }
  • 1972af43-5cb0-4c84-b15e-b96a2da52893 这是route的id
  • response-ratelimiting 插件的名字
  • xmm 这个是自定义的, 限制的名字
  • day这是表示这个路由一天能被访问10次。具体还可以按照分钟,秒,小时,年等官网
插件的说明

如果路由或者服务上没有应用认证的插件(如base-auth,key-auth),kong会议client ip的维度统计。如果应用可会以consumer的维度统计。

后端服务改造一下

默认后端服务会接收到 X-Ratelimit-Remaining-Xmm 请求头,表示还有剩余多少次访问,其中Xmm是我们定义的limit的名字。我们可以设置X-Kong-Limit作为回应,表示在剩余值的基础上减少多少。如 X-Kong-Limit: XMM=2,表示减少2;X-Kong-Limit: XMM=0,表示不减少;
在这里插入图片描述
下面是我的代码:

  1. def get(self):
  2. self.print_header()
  3. self.set_header("X-Kong-Limit", "xmm=2") #重点部分
  4. self.render("index.html")
测试一下

在这里插入图片描述
图中表示,剩余值设置的是20,现在还剩8次

我再点击8次
在这里插入图片描述


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

发表评论

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

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

相关阅读

    相关 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的简写,可以用来保证数据的完整,客户端把内容通过散列/哈希算法算出一个摘要...