首页 > 其他分享 >Kong入门学习实践(8)流量控制插件

Kong入门学习实践(8)流量控制插件

时间:2023-07-02 17:22:58浏览次数:44  
标签:插件 限制 请求 流量 Kong Traffic 入门

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的云原生微服务网关》

 

作者:周旭龙

出处:https://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

标签:插件,限制,请求,流量,Kong,Traffic,入门
From: https://www.cnblogs.com/edisonchou/p/edc_kong_learning_notes_chap8.html

相关文章

  • ASP.NET Core SignalR 入门
    本章将和大家分享使用SignalR生成实时应用的基础知识。通过本文您将学习如何:使用ASP.NETCoreSignalR+MVC+Vue2.x+require最终创建一个正常运行的简易聊天应用。废话不多说,我们直接来看一个Demo,Demo的目录结构如下所示:本Demo的Web项目为ASP.NETCoreWeb应用程序(目......
  • Linux 图形栈从入门到放弃 --- Linux 图形相关概念简介
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。环境说明  无前言  在日常生活中,像我们常用的ubuntu(Linux),windows,android,mac等等系统,我们都能够看到丰富的图形界面。此外,如果大家了解过以前的嵌入式系统,很多......
  • LinuxDNS分析从入门到放弃(记一次有趣的dns问题排查记录,ping 源码分析,getaddrinfo源码
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。环境说明  ubuntu18.04前言  我们这里有一块嵌入式板卡,当我们通过PING测试内网IP时,发现外网IP访问正常,但是测试域名访问一直报unknownhost。一般来说,在ubun......
  • Maven cheat sheet 手抄:从入门到无语
    Mavencheatsheet手抄写给懒人看的概念生命周期由阶段构成:validate,compile,test,package,verify,install,deploy基础基础编译:mvncleanpackage环境变量:MAVEN_HOME,MAVEN_OPTS,MAVEN_ARGS配置打印激活的配置:mvnhelp:active-profiles激活Profile:-Pprofi......
  • SpringBoot 插件化开发模式
    1、Java常用插件实现方案1.2、serviceloader方式serviceloader是java提供的spi模式的实现。按照接口开发实现类,而后配置,java通过ServiceLoader来实现统一接口不同实现的依次调用。而java中最经典的serviceloader的使用就是Java的spi机制。1.2.1、javaspiSPI全称ServiceProv......
  • 工业机器人课程推荐 ROS机械臂开发从入门到实战
    ROS系统最早起源于2007年斯坦福大学人工智能实验室,是目前世界上较主流且使用人数众多的开源机器人操作系统。ROS的发展历史并不长,国内配套的资源也不够丰富,二次开发相对困难,大部分产品并不配备相应的支持包。为解决机械臂使用者的难题,我们引进了一款ROS系统的机械臂,它配备着相应......
  • Excel入门_2023/6/30
    常见用途整理记录(美化、简化)数据计算、分析数据展现难点问题数据量、计算效率、价值赋予、组织协作学习目标学习核心功能,解放学习思路,做到举一反三。学习方法  ......
  • Python入门
    一、逻辑运算符的一些记录#非布尔值的与或运算#当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值#与运算的规则#与运算是找False的,如果第一个值是False,则不看第二个值#如果第一个值是False,则直接返回第一个值,否则返回第二个值#或......
  • Maven 入门实战(2)--POM
    POM(ProjectObjectModel,项目对象模型)是Maven工程的基本工作单元,它是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。执行任务或目标时,Maven会在当前目录中查找并读取POM,获取所需的配置信息,然后执行目标。1、基本配置<projectxmlns="http:......
  • PostgreSQL 新手入门指引
    自从MySQL被Oracle收购以后,PostgreSQL 逐渐成为开源关系型数据库的首选。本文介绍PostgreSQL的安装和基本用法,供初次使用者上手。以下内容基于Debian操作系统,其他操作系统实在没有精力兼顾,但是大部分内容应该普遍适用。一、安装首先,安装PostgreSQL客户端。sudoapt-getins......