问题说明:
网关流控规则` 针对请求URL参数设置流控规则,URL参数未匹配上,结果触发了普通限流:FlowException
类型:错误报告
1.发生了什么
--》 新建网关流控规则,针对请求属性Url参数进行设置规则 name=yzf,并1秒间隔内超过0次请求触发限流
2.期望发生
--》当请求的url上未携带name=yzf时,应该不触发限流,结果触发了限流FlowException
3.如何重现:
1)针对某一个路由设置一个如上图针对Url参数的网关流控规则
2)请求Url上不要携带Url参数 name=yzf,然后点击发送测试
3)会发现虽然是针对Url参数设置的流控规则,但是不带url参数的请求一样被限流
4.使用的环境: spring boot 2.3.5、spring cloud gateway是2.2.6
原提问者GitHub用户LingLingFeng
访问 http://网关应用ip:网关应用机器列表里Sentinel的端口port/gateway/getRules http://网关应用ip:网关应用机器列表里Sentinel的端口port/getRules?type=flow 分别看看网关规则和普通流控规则
我用项目里的sentinel-demo-spring-cloud-gateway测试,连接控制台,设置跟截图一样的规则,结果是正常的。
多次访问:http://localhost:8090/httpbin/json?name=yzf,提示网关限流Blocked by Sentinel: ParamFlowException 而访问:http://localhost:8090/httpbin/json或http://localhost:8090/httpbin/json?name=yzf1没有出现限流。
参考该demo检查对比看看
原回答者GitHub用户cdfive
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。