soul网关-6-rateLimiter插件限流

本文详细介绍了Soul网关的RateLimiter插件,该插件利用Redis令牌桶算法进行限流。通过分析源码和实际配置验证,展示了限流效果,并探讨了Lua脚本在Redis中的作用,以及在配置过程中遇到的问题和解决方法。
摘要由CSDN通过智能技术生成

前几篇学习笔记,从普通springboot项目接入soul网关的原理 -> 数据同步机制之websocket -> sign插件签名认证 -> divide插件请求代理,将soul网关的大致流程捋了一遍。今天学习一下soul网关的rateLimiter插件,看下它是如何实现限流的。

看soul网关关于rateLimiter插件的介绍,它是采用redis令牌桶算法进行限流的。

采用redis令牌桶算法进行限流

我们先来看下源码里面的相关实现。

我们在第二篇笔记里面分析过插件链,知道了大部分插件是继承自AbstractSoulPlugin抽象类的,插件链的顺序是global -> sign -> waf -> rate-limiter -> hystrix -> resilience4j -> divide -> webClient -> …………。我们就来看一下RateLimiterPlugin,它也是继承自AbstractSoulPlugin,那么它也会先调用AbstractSoulPluginexecute方法,找到与当前请求匹配的selector和rule之后,执行RateLimiterPlugindoExecute方法。

我们看下doExecute方法里面的具体实现

	@Override
    protected Mono<Void> doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) {
        final String handle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值