Java编程guava RateLimiter实例解析

 更新时间:2018年01月19日 10:02:00   作者:arkblue  
这篇文章主要介绍了Java编程guava RateLimiter实例解析,具有一定借鉴价值,需要的朋友可以参考下

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

令牌桶算法(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); 
  } 
 } 
} 

总结

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

相关文章

  • 解决java junit单元测试@Test报错的问题

    解决java junit单元测试@Test报错的问题

    今天小编就为大家分享一篇解决java junit单元测试@Test报错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • SpringBoot实现自定义线程池的方法

    SpringBoot实现自定义线程池的方法

    这篇文章主要介绍了SpringBoot中的自定义线程池解析,实现自定义线程池重写spring默认线程池的方式使用的时候,只需要加@Async注解就可以,不用去声明线程池类,需要的朋友可以参考下
    2023-11-11
  • Java实现过滤掉map集合中key或value为空的值示例

    Java实现过滤掉map集合中key或value为空的值示例

    这篇文章主要介绍了Java实现过滤掉map集合中key或value为空的值,涉及java针对map的简单遍历、判断、移除等相关操作技巧,需要的朋友可以参考下
    2018-06-06
  • Java ArrayList 数组之间相互转换

    Java ArrayList 数组之间相互转换

    本文通过代码示例给大家讲解arraylist转化为数组,然后数组转化为arraylist的相关资料,感兴趣的朋友一起看看吧
    2015-11-11
  • Java编程一道多线程问题实例代码

    Java编程一道多线程问题实例代码

    这篇文章主要介绍了Java编程一道多线程问题实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • maven-maven使用-P参数打包不同环境问题

    maven-maven使用-P参数打包不同环境问题

    这篇文章主要介绍了maven-maven使用-P参数打包不同环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Ehcache简介_动力节点Java学院整理

    Ehcache简介_动力节点Java学院整理

    这篇文章主要介绍了Ehcache简介,使用Spring的AOP进行整合,可以灵活的对方法的返回结果对象进行缓存
    2017-07-07
  • JAVA中Collections工具类sort()排序方法

    JAVA中Collections工具类sort()排序方法

    这篇文章主要介绍了JAVA中Collections工具类sort()排序方法,非常具有实用价值,需要的朋友可以参考下。
    2016-11-11
  • Spring注解@Configuration和@Component区别详解

    Spring注解@Configuration和@Component区别详解

    @Component和@Configuration都可以作为配置类,之前一直都没觉得这两个用起来有什么差别,可能有时程序跑的和自己想的有所区别也没注意到,下面这篇文章主要给大家介绍了关于Spring注解@Configuration和@Component区别的相关资料,需要的朋友可以参考下
    2023-04-04
  • Java中四种遍历List的方法总结(推荐)

    Java中四种遍历List的方法总结(推荐)

    下面小编就为大家带来一篇Java中四种遍历List的方法总结(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论