首页  

guava RateLimiter 限流例子     所属分类 guava 浏览量 316
限流 RateLimiter

import java.text.SimpleDateFormat;
import java.util.Date;

import com.google.common.util.concurrent.RateLimiter;

public class RateLimiterTest {
	
	private static final String DATEFORMAT = "yyyy.MM.dd HH:mm:ss SSS";
	
	public static void main(String[] args) throws Exception {		
		// 1秒钟3个令牌
	    RateLimiter limiter = RateLimiter.create(3);    
	    SimpleDateFormat sdf = new SimpleDateFormat(DATEFORMAT);
	    
	    while(true){	    	
	    	System.out.println(limiter.tryAcquire()+","+sdf.format(new Date()));
	    	Thread.sleep(50); 	
	    }
	}
}

1秒钟 3个 令牌 ,一秒钟内  limiter.tryAcquire() 只有三次调用true 
大约每隔300毫秒 ,返回一次 true 

true,2020.03.08 10:56:34 482
false,2020.03.08 10:56:34 534
false,2020.03.08 10:56:34 588
false,2020.03.08 10:56:34 642
false,2020.03.08 10:56:34 693
false,2020.03.08 10:56:34 744
true,2020.03.08 10:56:34 795
false,2020.03.08 10:56:34 848
false,2020.03.08 10:56:34 900
false,2020.03.08 10:56:34 953
false,2020.03.08 10:56:35 005
false,2020.03.08 10:56:35 059
true,2020.03.08 10:56:35 109
false,2020.03.08 10:56:35 164
false,2020.03.08 10:56:35 219
false,2020.03.08 10:56:35 274
false,2020.03.08 10:56:35 326
false,2020.03.08 10:56:35 381
false,2020.03.08 10:56:35 433
true,2020.03.08 10:56:35 485
false,2020.03.08 10:56:35 540


 guava简介及使用 

 分布式限流方案 

完整代码
https://gitee.com/dyyx/demos/blob/master/guava/src/main/java/dyyx/RateLimiterTest.java

上一篇     下一篇
guava简介及使用

管理学定律

程序员的爱情

guava cache 例子

2019容器使用情况

银行业务简介