Kong入门学习实践(8)流量控制插件
Kong的一大特色就在于强大的可扩展性,具体实现方式就是插件。一来Kong已经提供了很多内置的插件,二来我们也可以使用Lua语言自定义开发插件。今天,我们就来了解一些常用的流量控制插件。
关于流量控制插件
我们在实际应用往往会有一些场景需要限流和限频,从而管理入站和出站的流量。
在Kong中就提供了一些内置的流量控制的插件:
请求大小限制
请求流量限制
终止请求
请求大小限制
此插件主要用于阻止请求内容大小大于指定配置(比如512KB或2MB)的请求,以防止非法、恶意的DoS(拒绝服务)攻击。
我们可以根据下面的步骤开启请求大小限制插件:
首先,找到需要开启插件的service,并进入到plugins页面点击ADD PLUGIN按钮。

其次,找到Traffic Control类别,然后找到Request Size Limiting插件,点击ADD PLUGIN按钮。

然后,配置允许的内容大小,这里为了演示,配置为10个字节。

最后,我们通过PostMan来验证一下,将Body类型选择为“x-www-form-urlencoded”,然后输入一个超过10字节的内容即可测试。

请求流量限制
此插件主要用于限制客户端在一定时间内的请求量,广泛应用于需要保证系统性能的系统访问中。
在Kong中,Traffic Control插件类型中就提供了一个Rate Limiting的限流插件。

在配置项中,我们假设限制客户端每秒只能至多有3次请求。

最后,我们直接通过浏览器来验证一下,连续快速刷新就会得到这个提示:

终止请求
此插件主要通过返回指定的HTTP状态码和信息来终止传入的请求,常用在升级和维护站点时,暂时停止客户端的任务访问请求。
在Kong中,Traffic Control插件类型中就提供了一个Request Termination的终止请求插件。

配置内容如下:返回状态码403 及 一段消息“Sorry, this site is upgrading, please wait..

这里我们用PostMan来测试一下:

了解了这些常见的流量控制插件,我们很快就可以用在自己的实际场景中。
参考资料
闫观涛,《Kong入门与实践-基于Nginx和OpenRestry的云原生微服务网关》

Kong入门学习实践(8)流量控制插件的更多相关文章
- Nacos入门学习&实践
文中涉及到了一些模块代码没有给出,我一并上传到github了,可以整个项目clone下来进行调试. 地址:https://github.com/stronglxp/springcloud-test 1 ...
- 万字长文:SpringCloud gateway入门学习&实践
官方文档:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/# ...
- 《深度学习框架PyTorch:入门与实践》的Loss函数构建代码运行问题
在学习陈云的教程<深度学习框架PyTorch:入门与实践>的损失函数构建时代码如下: 可我运行如下代码: output = net(input) target = Variable(t.a ...
- 入门python:《Python编程从入门到实践》中文PDF+英文PDF+代码学习
入门python推荐学习久负盛名的python入门书籍<Python编程从入门到实践>. 书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试& ...
- 《Python编程:从入门到实践》基础知识部分学习笔记整理
简介 此笔记为<Python编程:从入门到实践>中前 11 章的基础知识部分的学习笔记,不包含后面的项目部分. 书籍评价 从系统学习 Python 的角度,不推荐此书,个人更推荐使用< ...
- 学习资源 Docker从入门到实践 pdf ,docker基础总结导图
学习资源 Docker从入门到实践 pdf ,docker基础总结导图 Docker从入门到实践 pdf 云盘地址:https://pan.baidu.com/s/1vYyxlW8SSFSsMuKaI ...
- 《Terraform 101 从入门到实践》 第二章 Providers插件管理
<Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. 不怕出身低,行行出状元. 插 ...
- 初探Electron,从入门到实践
本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 在开始之前,我想您一定会有这样的困惑:标题里的Electron ...
- 第04项目:淘淘商城(SpringMVC+Spring+Mybatis) 的学习实践总结【第一天】
本人做过一年的MATLAB编程和简单维护过VB和C++的项目.是跟着网上获得的黑马的Java双元视频课来自学入门Java知识和常用框架的使用. 淘淘商城(SpringMVC+Spring+Mybati ...
- 《Terraform 101 从入门到实践》 Terraform在公有云GCP上的应用
<Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. Terraform支持的公有 ...
随机推荐
- 【Docker】命令行操作
Docker常用命令 帮助命令 docker version docker info docker --help Docker 客户端 docker 客户端非常简单 ,我们可以直接输入 docker ...
- 在Unity中实现(纯C#)热更新--使用ILRunTime{学习日志}
热更新的逻辑:热更新的那部分内容其实就是一个dll的库文件,到时候修改也是改这个库文件: 我们只需要在主工程(我们的Unity项目)中引入并调用这个dll库里的代码就行了. 首先我们需要在Unity中 ...
- dxSpreadSheet的报表demo-关于设计报表模板的Datagroup问题
看随机的报表DEMO,主从表也好,数据分组也好.呈现的非常到位. 问题:可是自己在实现数据分组时,一旦设定分组字段就出现了混乱的数据记录. 问题的原因: 看一下一个报表页面设计时需要理清的概念. 页头 ...
- Win10怀旧--win7体验
右键菜单变窄(1903以后失效) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\FlightedFeatures Immer ...
- Windows开机执行bat脚本
1.编写好bat脚本 2.将脚本复制到: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
- java 限流
题记 在高并发的分布式系统中,我们都需要考虑接口并发量突增时造成的严重后果,后端服务的高压力严重甚至会导致系统宕机.为避免这种问题,我们都会为接口添加限流.降级.熔断等能力,从而使接口更为健壮. 限流 ...
- K8s新手系列之Label标签和Label选择器
概述 官网:https://kubernetes.io/zh-cn/docs/concepts/overview/working-with-objects/labels/ 在K8s中,Label(标签 ...
- 操作系统综合题之“用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码(水果进箱问题-代码补充)”
1.问题:假设一个水果赛选系统由三个进程A.B.C组成.进程A每次取一个水果,之后存放在货架F上,F的容量为每次只能存放一个水果.若货架上存放的是苹果则让进程B取出,并存放到苹果箱中:若货架上存放的是 ...
- Typora+PicGo+OSS搭建博客图床
Typora+PicGo+OSS搭建博客图床 Q:为什么需要搭建博客图床呢? A:首先,博客园平台支持markdown语法进行创作 其次,最近想在微信公众号同步文章,在思考有没有多平台快捷发布的办法, ...
- 5个让你眼前一亮的JavaScript装饰器技巧
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...