RequestRateLimiter redis相关问题

来源:10-16 Spring Cloud Gateway限流

zzz_00

2022-11-17

目前代码调试正常:配置如下
图片描述
问题:过程中出现 ERR bad lua script for redis cluster, all the keys that the script uses should be passed using the KEYS array, and KEYS should not be in expression. 错误提示。发现是阿里云redis中script_check_enable参数为1导致,需要修改为0即可解决该问题。有个顾虑是这个参数是对lua脚本进行格式限制的,冒然改了会不会对其他方面产生影响,希望老师给点建议

写回答

1回答

大目

2022-11-18

非常棒的问题!报错的原因,是因为Redis Cluster要求操作要在相同slot上,而script_check_enable用来检查这一点。

早期,gateway中限流使用的lua脚本有问题,不支持Cluster,现在已经解决了。

可以看看下面两个链接。要想解决,理论上升级gateway版本到最新就可以了(可以只升级gateway这一个服务,其他的不升级)


https://github.com/spring-cloud/spring-cloud-gateway/pull/1016


https://github.com/spring-cloud/spring-cloud-gateway/blob/main/spring-cloud-gateway-server/src/main/resources/META-INF/scripts/request_rate_limiter.lua


0
4
大目
回复
zzz_00
阿里云我不太了解哦,不好意思哈。 可以在 https://github.com/alibaba/spring-cloud-alibaba 提问哦,里面有阿里云的官方同学的。
2022-11-22
共4条回复

Spring Cloud Alibaba微服务从入门到进阶

面向未来微服务:熟练掌握Spring Cloud Alibaba

3054 学习 · 1322 问题

查看课程