本文主要研究的是Java编程guava RateLimiter的相关内容,具体如下。
创新互联是专业的槐荫网站建设公司,槐荫接单;提供成都做网站、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行槐荫网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!令牌桶算法(token bucket algorithm)
场景1 在流量监管中的应用
约定访问速率(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); } } }