spring cloud gateway (5)其他

本文介绍了一种基于Lua脚本的限流策略,通过自定义限流过滤器实现GlobalFilter接口,结合RedisTemplate执行Lua脚本来确保请求计数的原子性,有效减少Redis服务器连接次数,同时提供了限流过滤器源码解析及Spring Cloud Gateway配置示例。

1.对于限流,可以先看看ratelimit包里的几个类,gateway里可以定义自己的key,来确定哪些请求算同一个请求,如根据IP来计算,之后执行一次lua脚本来计算次数。
因为没满足公司需求,所以我是自己加个限流过滤器实现GlobalFilter接口
根据不同业务来组成参数key,然后自己定义RedisTemplate来执行lua脚本(lua语法只需看十几分钟例子即可上手,所以建议还是用脚本,避免原子性问题,也减少了连接redis服务器的次数)
设置redis缓存时带上过期时间即可实现限流。
2.过滤器
其实过滤器源码都很好理解。
或者也可以参考文档:
http://cloud.spring.io/spring...
里面每个过滤器都有简单的例子跟注释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值