pom.xml引入jar包
com.google.guava guava 29.0-jre
代码
@RestControllerpublic class HelloController { //创建令牌桶,每秒1个令牌 private RateLimiter rl = RateLimiter.create(1); @RequestMapping("/limit") public DefaultResult limit() { //获取令牌,如果没有则等待至超时,本代码超时时间为0,立刻返回错误信息 boolean flag = rl.tryAcquire(0, TimeUnit.SECONDS); DefaultResult result = new DefaultResult(); if (!flag) { result.setCode(777); result.setMsg("限流"); } else { UserResult ur = new UserResult(); ur.setId(111); ur.setUserName("测试"); result.setData(ur); } return result; }}
结果
成功