-
从Maven依赖开始🛠
<dependency> <groupId>com.github.sunywdev</groupId> <artifactId>routelimit</artifactId> <version>1.0.1</version> </dependency>
-
全局限流
route: #每秒产生的令牌数量,配置使用时为:一个请求URL的匀速并发量 例:http://127.0.0.1:8081/send 接口最大并发魏2000/匀速为1500 #分布式环境下使用时,为多个ip地址加请求URI的限制 replenishrate: 1500 #桶内令牌容量:一个请求URL的最大并发量 burstcapacity: 2000 #每次获取令牌数量 acquiredquantity: 1 #发送人邮箱 formmailaddress: #服务异常通知人邮箱,多个使用 , 分隔开 sendmailaddress: #是否开启日志链路追踪,默认不开启 startlog: true
-
基于接口配置限流,使用@RouteLimiter注解
/** * repleniShrate :每秒产生的令牌数量; * burstCapacity:桶内令牌容量; * acquiredQuantity:每次获取令牌数量(一般配置为1); * * @return */ @GetMapping("/logerror") @RouteLimiter(repleniShrate = 1, burstCapacity = 2, acquiredQuantity = 1) @Log(name = "限流测试") public Map<String, Object> logError() { Map<String, Object> respMap = new HashMap<>(); respMap.put("code", "200"); respMap.put("msg", "success"); return respMap; }
-
日志链路记录使用@Log注解,并初始化Db文件,数据库使用MySql数据库
-- 正常情况
-- 触发限流
文章评论