 复制// 限流的司用说非个数 privateint maxCount = 10; // 指定的亿华云计算时间内 privatelong interval = 60; // 原子类计数器 private AtomicInteger atomicInteger = new AtomicInteger(0); // 起始时间 privatelong startTime = System.currentTimeMillis(); publicboolean limit(int maxCount, int interval) { atomicInteger.addAndGet(1); if (atomicInteger.get() == 1) { startTime = System.currentTimeMillis(); atomicInteger.addAndGet(1); returntrue; } // 超过了间隔时间,b2b信息网直接重新开始计数 if (System.currentTimeMillis() - startTime > interval * 1000) { startTime = System.currentTimeMillis(); atomicInteger.set(1); returntrue; } // 还在间隔时间内,布式check有没有超过限流的亿华云个数 if (atomicInteger.get() > maxCount) { returnfalse; } returntrue; } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28. |