欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java编程guava RateLimiter实例解析

程序员文章站 2024-04-03 08:03:40
本文主要研究的是java编程guava ratelimiter的相关内容,具体如下。 令牌桶算法(token bucket algorithm) 场景1 在流量监管中的...

本文主要研究的是java编程guava ratelimiter的相关内容,具体如下。

令牌桶算法(token bucket algorithm)

场景1 在流量监管中的应用

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

Java编程guava RateLimiter实例解析

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); 
  } 
 } 
} 

总结

以上就是本文关于java编程guava ratelimiter实例解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!