请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

RequestRateLimiter redis相关问题

目前代码调试正常:配置如下
图片描述
问题:过程中出现 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回答

非常棒的问题!报错的原因,是因为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 回复 有任何疑惑可以回复我~
  • 提问者 zzz_00 #1
    感谢解答
    我把所有版本都更新了,最后问题解决了,版本如下
    Spring Cloud Alibaba Version 2021.0.4
    Spring Cloud Version 2021.0.4
    Spring Boot Version 2.6.11 
    问题:但是发现在应用启动的时候报错 No spring.config.import property has been defined …………
    依靠搜索引擎,发现是在spring cloud 新版本中 剔除了 bootstrap 的依赖,重新导入 spring-cloud-starter-bootstrap 就可以了 
    疑惑:不清楚spring cloud升级 为什么要把bootstrap 剔除,是之后的spring cloud 应用都不用 bootstrap.yml配置,改用application.yml 吗?麻烦老师解惑
    回复 有任何疑惑可以回复我~ 2022-11-18 14:46:11
  • 大目 #2
    不是,是新版本中,spring cloud拆出来一个bootstrap的starter
    但是spring cloud nacos config没包含,所以得自己引入一下。
    回复 有任何疑惑可以回复我~ 2022-11-18 14:48:36
  • 提问者 zzz_00 回复 大目 #3
    老师 我无语了,上一个问题:gateway限流 lua脚本的问题 貌似还是不行!
    版本用的就是最新的 对应的gateway版本是 3.1.4,我找到request_rate_limiter.lua这个脚本,对应的也是最新的
    疑惑:是不是因为阿里云redis修改标签有个缓冲时间,导致我误以为gateway升级版本后问题得到了解决,实际lua脚本问题还是存在的?
    
    补充:重启工具, 重新导包 发现又可以了,真无语!!(ps:但是新cloud版本 去了好几个依赖包,bootstrap,loadbalancer 等 )
    回复 有任何疑惑可以回复我~ 2022-11-19 11:27:04

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信