赞
踩
滑动窗口算法是为了解决固定窗口算法的临界值的问题而诞生的,滑动窗口是基于是时间来划分窗口的。
令牌桶是对漏桶算法的一种改进,漏桶算法能够限制调用的速率,而令牌桶算法能够在限制调用的平均速率的同时还可以允许一定程度的突发调用。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>29.0-jre</version>
<!-- or, for Android: -->
<version>29.0-android</version>
</dependency>
/*** 模拟RateLimiter限流 */ public class TestRateLimiter { public static void main(String[] args) { //0.5代表一秒最多多少个 RateLimiter rateLimiter = RateLimiter.create(0.5); List<Runnable> tasks = new ArrayList<Runnable>(); for (int i = 0; i < 10; i++) { tasks.add(new UserRequest(i)); } ExecutorService threadPool = Executors.newCachedThreadPool(); for (Runnable runnable : tasks) { System.out.println("等待时间:" + rateLimiter.acquire()); threadPool.execute(runnable); } } private static class UserRequest implements Runnable { private int id; public UserRequest(int id) { this.id = id; } public void run() { System.out.println("userQuestID:"+id); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。