本文汇总梳理了限流功能使用过程中遇到的常见问题。
为什么服务限流配置后没有效果?
排查步骤如下:
确认 SOFA 的版本大于 3.3.0,如果低于这个版本,请升级版本。
SOFA 版本说明,请参见 版本说明。
接入动态配置客户端和服务限流。
<dependency> <groupId>com.alipay.sofa</groupId> <artifactId>ddcs-enterprise-sofa-boot-starter</artifactId> </dependency> <dependency> <groupId>com.alipay.sofa</groupId> <artifactId>guardian-sofa-boot-starter</artifactId> </dependency>
确认客户使用的是 REST 协议的限流方式,步骤如下:
检查代码的编写,验证 Facade 接口、实现类和 XML 配置。接口定义如下:
XML 中配置实现类的 bean,同时发布 REST 协议的服务。
将应用部署到 CAFE 进行测试,步骤如下:
部署完成,通过查看 Guardian 的
guardian-default.log
日志文件,确认 Guardian 组件已经成功注册。在 SOFA 控制台配置限流条件。
配置的应用名称必须和
application.properties
中的spring.application.name
值一致。配置完成以后,重新打开服务限流的开关。
通过查看 Guardian 的
guardian-default.log
日志文件确认应用程序成功打印了配置信息的日志,如下所示:确认以上信息无误后,在浏览器进行访问,验证效果。可通过
guardian-limit-stat.log
查看成功通过的请求。
为什么在配置的 logs 文件夹下没有限流日志文件目录?
您需要在启动类中添加自定义路径,限流的日志文件将在设置的目录生成。示例如下:System.setProperty("user.home","/tmp/localfile")
为什么业务程序启动时,Guardian 没有加载?
问题现象:
在业务程序启动的时候,Guardian 没有加载,日志目录也没有生成。
问题原因:
业务程序打包时,没有引入 Guardian 的 JAR 包。
解决方案:
在进行打包业务程序时,确保引入 Guardian 的 JAR 包。
文档内容是否对您有帮助?