flowlimit

分流限流程序
授权协议 GPL
开发语言 Lua
所属分类 服务器软件、 Nginx扩展模块
软件类型 开源软件
地区 国产
投 递 者 周祺
操作系统 Linux
开源组织
适用人群 未知
 软件概览

flowlimit 是用于部署在OpenResty上的分流限流控制脚本,基于配置策略进行工作,可以通过管理URI实时调整配置生效。

特性

1,分流功能,方便对后端服务器进行线上的AB测试

2,限流功能,基于逻辑表达式方式的定义的过滤器集合,支持复杂的嵌套定义

3,降级功能,对于被限流的请求,如果具备降级配置,则会重定向到降级URL

4,分流限流和其他配置都支持线上直接通过访问控制URL进行修改,实时生效

5,分流器和限流过滤器都支持用户自己的扩展,遵守接口并且放入特定目录即可

包括几个部分

lua_scripts 用于部署到OpenResty的Lua脚本,脚本插入点见nginx/conf/nginx.conf

lualib 用于部署到OpenResty的Lua库脚本,包括实现控制所需要的各种工具lua库文件

nginx/conf/nginx.conf OpenResty的配置文件

lua_ext 安装依赖的扩展,包括uuid_ext,cookie_ext

deps 依赖的第三方库,uuid_ext依赖的uuid库源代码

安装

1, 安装OpenResty

2, 安装uuid_ext和cookie_ext

3,把lua_scripts,lualib 拷贝到OpenResty安装的根目录下

 相关资料
  • 关于 Sentinel 限流功能,请点 这里 查看。 限流的场景 在应用的开发中,我们经常会遇到这样的一些场景,例如: 秒杀 抢红包 等等情况,这些业务都有一个明显的特征:并发量非常高。倘若没做好限流,往往会造成系统崩溃的情况。 限流的类型 在 Jboot 中,我们可以对某个url请求进行限流,也可以对某个java方法进行限流。 Jboot 提供了两种方案: TOKEN BUCKET : 令牌桶,

  • 实例: rate-limiting 限流是一种保护错误,避免服务被突发的或者大量的请求所拖垮。 这个插件使用 juju/ratelimit来限流。 使用 func NewRateLimitingPlugin(fillInterval time.Duration, capacity int64) *RateLimitingPlugin t来创建这个插件。

  • 限流与权限类似,因为它确定是否应该授权请求。 限流阀指示临时状态,并用于控制客户端可以对API进行的请求速率。 与权限一样,可能会使用多种限流方式。你的 API 可能对未经身份验证的请求进行限流,对经过身份验证的请求限流较少。 如果你需要对 API 的不同部分使用不同的限流策略,由于某些服务特别占用资源,你可能想要使用同时有多种限流策略的另一种方案。 如果你想要同时实现爆发限流率和持续限流率,也可

  • 概述 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时

  • 为防止滥用,你应该考虑对您的 API 限流。 例如,您可以限制每个用户 10 分钟内最多调用 API 100 次。 如果在规定的时间内接收了一个用户大量的请求,将返回响应状态代码 429 (这意味着过多的请求)。 要启用限流, user identity class 应该实现 yii\filters\RateLimitInterface。 这个接口需要实现以下三个方法: getRateLimit(

  • SOP提供了简单的接口限流策略: 窗口策略:每秒处理固定数量的请求,超出请求返回错误信息。 令牌桶策略:每秒放置固定数量的令牌数,每个请求进来后先去拿令牌,拿到了令牌才能继续,拿不到则等候令牌重新生成了再拿。 如果一个接口设置了窗口策略,假设接口每秒可处理5个请求,一秒内同时有6个请求进来,前5个接口是能够访问的,第六个请求将返回错误信息。 如果设置了令牌桶策略,桶的容量是5,那么每秒中生成5个令