guava RateLimiter


令牌桶算法(token bucket algorithm)

场景1 在流量监管中的应用【http://blog.csdn.net/maotianwang/article/details/14167619】

约定访问速率(CAR)是流量监管常用技术之一,可以应用在端口进和出方向,一般应用在入方向,它的监管原理如图1所示。

a. 按特定的速率向令牌桶投放令牌

b. 根据预设的匹配规则先对报文进行分类,不符合匹配规则的报文不需要经过令牌桶的处理,直接发送;

c. 符合匹配规则的报文,则需要令牌桶进行处理。当桶中有足够的令牌则报文可以被继续发送下去,同时令牌桶中的令牌 量按报文的长度做相应的减少;

d. 当令牌桶中的令牌不足时,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送。这就可以限制报文的流量只能是小于等于令牌生成的速度,达到限制流量的目的。


第二个场景 :用于流量控制,在应用领域过载保护。


使用的例子:
public class RateLimiterTest {
	public static void main(String[] args) {
		final RateLimiter rateLimiter = RateLimiter.create(2.0);

		for (int i = 0; i < 100; i++) {
			rateLimiter.acquire();
			// 每秒打印两次
			System.out.println(i);
		}
	}
}

参考 http://ifeve.com/guava-ratelimiter/

http://blog.csdn.net/jiesa/article/details/50412027

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值